________________________________ De : abel adegnon <abelinoko...@hotmail.fr> Envoyé : samedi 26 mars 2016 07:14 À : de...@kannel.org; annou...@kannel.org; users@kannel.org Cc : maxtadot...@gmail.com Objet : Need help with kannel HTTP SMSC with openssmppbox, sqlbox, custom web App for billing and delivery report management Hello Guys ! I needs to bill my clients and I have configure bearebox,opensmppbox smsbox, sqlbox to achieved my goal. I have configure two instance of kannel : * first instance : ./bearerbox -v 1 /usr/local/gateway/clients/kannel.conf ./smsbox -v 1 /usr/local/gateway/clients/kannel.conf ./opensmppbox -v 1 /usr/local/gateway/clients/opensmppbox.conf * seconde instance of kannel : ./bearerbox -v 1 /usr/local/gateway/server/kannel.conf ./smsbox -v 1 /usr/local/gateway/server/kannel.conf ./sqlbox -v 1 /usr/local/gateway/server/sqlbox.conf First of all I have configure and http smsc in bearerbox of the first instance and I use route-to-smsc of opensmppbox to route all incoming SMS from client by SMPP connection to the HTTP SMSC in bearerbox of the first instance. The HTTP SMSC with generic type, thus send the message variable to web App which deduict the credit , do some stuff and record the message into sqlbox database. Therefore the second instance of kannel send normaly the message as there are new entry in the send_sms table of sqlbox. All thing are worked fine but I have some problem and need also some explanation to understand more how kannel exactly operate. My operator have gave me two http API accounts to connect to him, so the two http APi account server also as HTTP SMSC in the second instance to deliver the final message to the final client handset. Now my questions are : 1- How to get the operator messageId in Kannel ? 2- When I inserting the message in sqlbox send_sms table kannel give internal message ID to the message and I can retrieve the DLR in a DLR table with same messageID with status 0 but when the second instance make the execution and move the data to sent_sms table I can see another DLR in the dlr table with another messageId with status 0. So It is very difficult for me to manage the DLR and send also the result back to my customer because my customer have the first messageId gave by the kannel when the message was pass throught the 1st HTTP SMSC. Can you show me the right way to make the sytem ? 3- How to get the delivery report from operator ? 2 - How the send back delivery report back to my customer connect through opensmppbox? 3 - Can anybody explain me clearly the role of the generic param, by example generic-param-to of http SMSC? Here are my configuration files : * first instance configuration file : *****************1 instance kannel.conf*********************** # Default kannel configuration file group = core admin-port = 13000 admin-password = gateway2016 status-password = gateway2016 admin-allow-ip = "*.*.*.*" smsbox-port = 13012 box-allow-ip = 127.0.0.1 log-file = "/var/log/kannel/bearerbox.log" log-level = 3 dlr-storage = internal #ssl-client-certkey-file = /usr/local/gateway/certificats/public/sever.key ssl-server-cert-file = /usr/local/gateway/certificats/public/sever.crt ssl-server-key-file = /usr/local/gateway/certificats/public/sever.key ssl-trusted-ca-file = /usr/local/gateway/certificats/private/sms.csr include ="/usr/local/gateway/sbin/smsbox.conf" group = smsc smsc = http system-type = generic smsc-id = http-billing port = 13015 send-url="http://IP_of_remote_site/gateway/?r=sendSms/send&momt=%&sender=%P&receiver=%p&udhdata=%u&msgdata=%a&time=%t&service=%n&account=%n&id=%F&sms_type=%&mclass=%m&mwi=%M&coding=%c&compress=%&validity=%&deferred=%&dlr_mask=%d&dlr_url=%R&pid=%&alt_dcs=%O&rpi=%&charset=%C&boxc_id=%&binfo=%B&meta_data=%D&messageId=%I" status-success-regex = "ok" status-permfail-regex = "failure" status-tempfail-regex = "retry later" reroute-dlr = true transceiver-mode = true generic-param-from = "from" generic-param-to = "to" generic-param-text = "text" generic-param-udh = "udh" generic-param-service ="service" generic-param-account ="account" generic-param-binfo = "binfo" generic-param-dlr-mask ="dlr_mak" generic-param-dlr-url ="dlr_url" generic-param-dlr-mid = "dlr_mid" generic-param-flash = "flash" generic-param-mclass ="mclass" generic-param-mwi = "mwi" generic-param-coding = "coding" generic-param-validity = "validity" generic-param-deferred = "deferred" generic-param-foreign-id ="messageId" generic-message-sent ="%I" generic-status-sent = 200 generic-status-error = 404 # SENDÂSMS USERS group = sendsms-user default-sender=MysendeId username = username password = gate8976353 max-messages = 6 concatenation = true # SERVICES group = sms-service keyword = nop text = "You asked nothing and I did it!" # there should be default always group = sms-service keyword = default text = "No service specified" #SMS SERVICE group = sms-service keyword= name = default-service accept-x-kannel-headers = true max-messages = 6 assume-plain-text = true #catch-all = true get-url = "http://IP_of_remote_site/folder/?r=site/dlr&from=%p&to=%P&text=%a&token=%o&time=%t&smsc=%i&messageId=%F&meta=%D&messageCoding=%c&messageClass=%m&billing=%B&originatingSmsc=%f" *************************1st instance smsbox.conf file********************************** # SMS box group = smsbox smsbox-id=http-billing-smsbox bearerbox-host = IP log-file = "/var/log/kannel/smsbox.log" sendsms-url="/cgi-bin/sendsms" sendsms-chars = "0123456789 " sendsms-port=13013 log-level=1 global-sender=MysenderId mo-recode = true # SENDÂSMS USERS group = sendsms-user default-sender=MysenderId username = #username# password = gateway2016% max-messages = 6 concatenation = true #name = default-service ***************************1st instance opensmppbox.conf file****************************** group = core dlr-storage = mysql group=opensmppbox opensmppbox-id = SMPP opensmppbox-port = 2775 bearerbox-host = localhost bearerbox-port = 13012 timeout= 120 log-level = 5 log-file = /var/log/kannel/clients/opensmppbox.log our-system-id = vma use-systemid-as-smsboxid = true route-to-smsc = http-billing # see sample smpplogins.txt smpp-logins =/usr/local/gateway/clients/smpplogins.txt group = mysql-connection id = mydlr host = localhost username = root password = #password# database = smpp # you can increase this upon a higher load max-connections = 10 group = dlr-db id = mydlr table = dlr field-smsc = smsc field-timestamp = ts field-destination = destination field-source = source field-service = service field-url = url field-mask = mask field-status = status field-boxc-id = boxc ************************smpplogins file ******************************************** system-id-01 password-01 system-type-01 127.0.0.1 client-02 password-02 locahost 127.0.0.1 abolo kAjdh20 vma *.*.*.* afi 20jdh16 vma *.*.*.* ************************************************************************************** Seconde instance configuration files ************************************************************************************** ************************2nd instance kannel.conf ************************************ # Default kannel configuration file group = core admin-port = 14000 admin-password = admin pass status-password = status pass admin-allow-ip = "*.*.*.*" smsbox-port = 14012 box-allow-ip = 127.0.0.1 log-file = "/var/log/kannel/server/bearerbox.log" log-level = 5 dlr-storage = mysql # SMS box group = smsbox smsbox-id= "server-smsbox" bearerbox-host = My IP log-file = "/var/log/kannel/server/smsbox.log" sendsms-url="/cgi-bin/sendsms" sendsms-port=14013 mo-recode = true log-level=5 global-sender=senderId #include = "/usr/local/gateway/server/smsbox.conf" # Route sms pour les SMS entrants #group = smsbox-route #smsbox-id = server-smsbox #smsc-id = http-billing # SENDÂSMS USERS group = sendsms-user default-sender=senderId username = username password = password max-messages = 6 concatenation = true #name = default-service group = smsc smsc = http system-type = generic smsc-id = http-operator-1 port = 13015 send-url="http://first_IP_of_operator_site/gateway/?r=sendSms/send&sender=%P&receiver=%p&text=%u&user=myUsername&pass=MyPass" status-success-regex = "ok" status-permfail-regex = "failure" status-tempfail-regex = "retry later" reroute-dlr = true transceiver-mode = true group = smsc smsc = http system-type = generic smsc-id = http-operator-2 port = 13016 send-url="http://first_IP_of_operator_site/gateway/?r=sendSms/send&sender=%P&receiver=%p&text=%u&user=myUsername&pass=MyPass" status-success-regex = "ok" status-permfail-regex = "failure" status-tempfail-regex = "retry later" reroute-dlr = true transceiver-mode = true # SERVICES group = sms-service keyword = nop text = "You asked nothing and I did it!" # there should be default always group = sms-service keyword = default text = "No service specified" group = mysql-connection id = mydlr host = My IP username = root password = My DB password database = smpp max-connections = 5 group = dlr-db id = mydlr table = dlr field-smsc = smsc field-timestamp = ts field-source = source field-destination = destination field-service = service field-url = url field-mask = mask field-status = status field-boxc-id = boxc **************************************2nd instance smsbox ********************************************** group = sqlbox id = "sqlbox-db" smsbox-id = "server-smsbox" global-sender= "senderId" bearerbox-host = My IP bearerbox-port = 14012 smsbox-port = 13005 smsbox-port-ssl = false sql-log-table = sent_sms sql-insert-table = send_sms log-file = "/var/log/kannel/server/sqlbox.log" log-level = 5 #ssl-client-certkey-file = "" #ssl-server-cert-file = "" #ssl-server-key-file = "" #ssl-trusted-ca-file = "" # Database connection examples. Please uncomment as needed # Example MYSQL Connection group = mysql-connection id = "sqlbox-db" host = My IP username = root password = My DB password database = smpp ********************************* 2nd instance sqlbox file ********************************************** group = sqlbox id = "sqlbox-db" smsbox-id = "server-smsbox" global-sender= "senderId" bearerbox-host = My IP bearerbox-port = 14012 smsbox-port = 13005 smsbox-port-ssl = false sql-log-table = sent_sms sql-insert-table = send_sms log-file = "/var/log/kannel/server/sqlbox.log" log-level = 5 #ssl-client-certkey-file = "" #ssl-server-cert-file = "" #ssl-server-key-file = "" #ssl-trusted-ca-file = "" # Database connection examples. Please uncomment as needed # Example MYSQL Connection group = mysql-connection id = "sqlbox-db" host = localhost username = root password = My DB password database = smpp