No return dlr-url when error code returned from smpp
Our smsc is smpp. When smpp return error code, No dlr-url is returned. dlr-url is ok when no error code returned from smpp. How kannel run dlr-url at this circumstances ? ERROR: SMPP[sms]: SMSC returned error code 0x000a (Invalid Source Address) in response to submit_sm.
Kannel adding extra character:
Hello, I configured kannel to send messages. But I am facing one issue. When I send message '*get 35% discount*' then I am getting '*get 35%25 dscount*' on my handset. Kannel adding extra *25. * *How to solve this ? * -- Thanks and regards, Himanshu Matta
Re: Kannel adding extra character:
%25 is URL Encode of % On Jul 24, 2013, at 1:52 PM, Himanshu Matta himan...@hostnsoft.com wrote: Hello, I configured kannel to send messages. But I am facing one issue. When I send message 'get 35% discount' then I am getting 'get 35%25 dscount' on my handset. Kannel adding extra 25. How to solve this ? -- Thanks and regards, Himanshu Matta
restart kannel with internal storage, receive SMPP DLR ?
If DLR is empty queue after restarting kannel with internal storage, does kannel still receive DLR and run DLR-URL when SMPP send back DLR ?
Re: restart kannel with internal storage, receive SMPP DLR ?
Hello, Qqblog, Someone correct me if I'm wrong. When using internal storage for DLRs, to keep interpreting DLRs after a restart you'll have to use a spool (or file) to backup message state. That way, kannel will treat the DLRs that arrive for messages already sent. That can be done in the core group: group = core ... dlr-storage = internal store-type = spool store-location = /var/spool/kannel ... Regards, Rudy On Wed, Jul 24, 2013 at 5:47 AM, Qqblog Qqblog qqb...@ymail.com wrote: If DLR is empty queue after restarting kannel with internal storage, does kannel still receive DLR and run DLR-URL when SMPP send back DLR ?
Re: restart kannel with internal storage, receive SMPP DLR ?
If you need to keep DLR you need to use spool or file storage and store DLR in database so kannel could match DLR after restart. 2013/7/24 Rudy Matela r...@matela.com.br Hello, Qqblog, Someone correct me if I'm wrong. When using internal storage for DLRs, to keep interpreting DLRs after a restart you'll have to use a spool (or file) to backup message state. That way, kannel will treat the DLRs that arrive for messages already sent. That can be done in the core group: group = core ... dlr-storage = internal store-type = spool store-location = /var/spool/kannel ... Regards, Rudy On Wed, Jul 24, 2013 at 5:47 AM, Qqblog Qqblog qqb...@ymail.com wrote: If DLR is empty queue after restarting kannel with internal storage, does kannel still receive DLR and run DLR-URL when SMPP send back DLR ?
RE: Proposal for Real-time Routing in opensmppbox and bearerbox
Hi, Using HTTP RPCs to access the functionality would actually be more work in implementation on both the client (kannel) side and the server (application) side. For our application, the routing criteria (for say a number) will change once and then remain constant for quite some time. This is perfect for a database (possibly including caching). I think that the billing side is addressed brilliantly with the sqlbox functionality. At least, it works perfectly for our applications. Regards, Kelvin R. Porter From: Rinor Hoxha [mailto:rinorho...@gmail.com] Sent: Tuesday, July 23, 2013 5:33 PM To: Porter, Kelvin Cc: de...@kannel.org; users@kannel.org Subject: Re: Proposal for Real-time Routing in opensmppbox and bearerbox How about using (implementing or adapting) HTTP-based callbacks. So you could implement routing, billing or whatever you may need based on callback responses. Br, Rinor On 07/22/2013 10:45 PM, Porter, Kelvin wrote: Hi, I have included a proposed enhancement for routing message based on database contents below. I am looking for feedback. Please share your thoughts as to whether this would be of interest. Thank you. Regards, Kelvin R. Porter I would like to propose an enhancement to the source code to kannel bearerbox and opensmppbox. The enhancement would supercede the existing configuration groups: smsbox-route in the bearerbox, and smsc-route in the oppensmppbox. The enhancement dynamically consults a database table/view to determine the mapping based on the sender, receiver and original connection (smsc or box). The purpose of this enhancement is to allow dynamically changing the message routing without requiring a change to the configuration file(s) and then the subsequent restart of the opensmppbox and/or bearerbox. The enhancement works by taking advantage of the database access functionality currently used for storing DLRs in a database. The DLR code currently supports the following databases: mysql, oracle, pgsql, mssql, and sdb (where SDB is the simplified DB interface). The internal option refers to storing DLRs in memory and would not apply to this enhancement. I can write the code for these databases, but may require some assistance from the kannel community in testing them. The enhancement adds two new table parameters to the group dlr-db: table-smsc specifies the name of the table/view mapping a message to a smsc-id, and table-box specifies the name of the table/view mapping a message to a (sms)box. The enhancement is selectively enabled by configuring the parameters above. The following existing fields parameters of the group dlr-db are re-used: field-source specifies the name of the field that matches the sender of a message, and field-destination specifies the name of the field that matches the receiver of a message, and field-smsc specifies the name of the field that matches the smsc, and field-boxc-id specifies the name of the field that matches the name of the box. The following are two routines added to the dlr.h interface: /** Given message, then map to smsc id. */ Octstr * map_to_smsc(Msg *msg); /** Given message, then map to boxc-id. */ Ocstr *map_to_box(Msg *msg); If these methods return a (non-NULL) result, then they supercede the configuration-based routing. If the results are NULL, then the default configured routing can be applied. The queries for this the match look something like the following: 1. To determine the smsc... SELECT field-smsc FROM table-smsc WHERE ((field-sender = NULL) OR (field-sender = ?)) AND ((field-destination = NULL) OR (field-destination = ?)) AND ((field-boxc-id = NULL) OR (field-boxc-id = ?)) 2. To determine the (sms)box... SELECT field-boxc-id FROM table-box WHERE ((field-sender = NULL) OR (field-sender = ?)) AND ((field-destination = NULL) OR (field-destination = ?)) AND ((field-smsc = NULL) OR (field-smsc = ?)) The queries are written in this fashion where a column with a NULL value will always match (in essence a row with a NULL in a column will always match). That way a subset of the column values (e.g., receiver only or sender and boxc-id ) can be used to match as a criteria. New debug level logs would be added to indicate the input to the queries and the result. In addition, certain configuration panics might be added like attempting to configure table-smsc or table-box in conjunction with the internal database option. This enhancement would enable the directing of messages on the fly. I think that the approach would serve as a good foundation in case additional routing criteria were desired (i.e., language/encoding based routing).
Re: Proposal for Real-time Routing in opensmppbox and bearerbox
Hi. 2013/7/24 Porter, Kelvin kelvin.por...@h3net.com Hi, ** ** Using HTTP RPCs to access the functionality would actually be more work in implementation on both the client (kannel) side and the server (application) side. For our application, the routing criteria (for say a number) will change once and then remain constant for quite some time. This is perfect for a database (possibly including caching). About caching: you can implement simple one-time load from the database on the start and reload configuration on some trigger, maybe add URL to do so, let's say http://localhost:13000/reload-routes. so if you change rules in the database you hit the url and you're done! ** ** I think that the billing side is addressed brilliantly with the sqlbox functionality. At least, it works perfectly for our applications. Indeed. We're using patched sqlbox with bearerbox only too, deleting DLRs and updating MT records with all needed info. ** ** Regards, ** ** Kelvin R. Porter ** ** *From:* Rinor Hoxha [mailto:rinorho...@gmail.com] *Sent:* Tuesday, July 23, 2013 5:33 PM *To:* Porter, Kelvin *Cc:* de...@kannel.org; users@kannel.org *Subject:* Re: Proposal for Real-time Routing in opensmppbox and bearerbox ** ** How about using (implementing or adapting) HTTP-based callbacks. So you could implement routing, billing or whatever you may need based on callback responses. Br, Rinor I think it would be additional overhead in this case, I'm more into database / memcached idea. Same thing with calling smsbox HTTP url each time sms comes in instead of just updating info in the db directly. Very often there is separate server for sending purposes, so its not really convinient to have multiple HTTP-callbacks. Also if you're doing HTTP callback on WAN network I consider it being insecure, it should be HTTPS at least, no problem tho if its done over VPN / trusted LAN network. On 07/22/2013 10:45 PM, Porter, Kelvin wrote: *Hi,* * * *I have included a proposed enhancement for routing message based on database contents below.* * * *I am looking for feedback.* * * *Please share your thoughts as to whether this would be of interest.* * * *Thank you.* * * *Regards,* * * *Kelvin R. Porter* * * I would like to propose an enhancement to the source code to kannel bearerbox and opensmppbox. The enhancement would supercede the existing configuration groups: “smsbox-route” in the bearerbox, and “smsc-route” in the oppensmppbox. The enhancement dynamically consults a database table/view to determine the mapping based on the sender, receiver and original connection (smsc or box). The purpose of this enhancement is to allow dynamically changing the message routing without requiring a change to the configuration file(s) and then the subsequent restart of the opensmppbox and/or bearerbox. The enhancement works by taking advantage of the database access functionality currently used for storing DLRs in a database. The DLR code currently supports the following databases: “mysql”, “oracle”, “pgsql”, “mssql”, and “sdb” (where SDB is the simplified DB interface). The “internal” option refers to storing DLRs in memory and would not apply to this enhancement. I can write the code for these databases, but may require some assistance from the kannel community in testing them. The enhancement adds two new table parameters to the group “dlr-db”: “table-smsc” specifies the name of the table/view mapping a message to a smsc-id, and “table-box” specifies the name of the table/view mapping a message to a (sms)box. The enhancement is selectively enabled by configuring the parameters above. The following existing fields parameters of the group “dlr-db” are re-used: “field-source” specifies the name of the field that matches the sender of a message, and “field-destination” specifies the name of the field that matches the receiver of a message, and “field-smsc” specifies the name of the field that matches the smsc, and*** * “field-boxc-id” specifies the name of the field that matches the name of the box. The following are two routines added to the dlr.h interface: /** Given message, then map to smsc id. */ Octstr * map_to_smsc(Msg *msg); /** Given message, then map to boxc-id. */ Ocstr *map_to_box(Msg *msg); If these methods return a (non-NULL) result, then they supercede the configuration-based routing. If the results are NULL, then the default configured routing can be applied. The queries for this the match look something like the following: **1. **To determine the smsc… “SELECT field-smsc FROM
Re: restart kannel with internal storage, receive SMPP DLR ?
If kannel receives a dlr that it is not waiting for -its reccord was deleted on kannel restart- kannel will issue a warning that does not know what to do with it and discart it. Regards Alvaro On 7/24/13, spameden spame...@gmail.com wrote: If you need to keep DLR you need to use spool or file storage and store DLR in database so kannel could match DLR after restart. 2013/7/24 Rudy Matela r...@matela.com.br Hello, Qqblog, Someone correct me if I'm wrong. When using internal storage for DLRs, to keep interpreting DLRs after a restart you'll have to use a spool (or file) to backup message state. That way, kannel will treat the DLRs that arrive for messages already sent. That can be done in the core group: group = core ... dlr-storage = internal store-type = spool store-location = /var/spool/kannel ... Regards, Rudy On Wed, Jul 24, 2013 at 5:47 AM, Qqblog Qqblog qqb...@ymail.com wrote: If DLR is empty queue after restarting kannel with internal storage, does kannel still receive DLR and run DLR-URL when SMPP send back DLR ? -- |-| Envíe y Reciba Datos y mensajes de Texto (SMS) hacia y desde cualquier celular y Nextel en el Perú, México y en mas de 180 paises. Use aplicaciones 2 vias via SMS y GPRS online Visitenos en www.perusms.NET www.smsglobal.com.mx y www.pravcom.com
Re: HTTP SMSC inject dlr with error code
Helo Ahmed, Please post questions to users@kannel.org list, not to me directly. There are many competent people which could help you. On Mon, 2013-07-22 at 12:43, Ahmed Shabana wrote: Hellow Milan , I found this issue at kannel mailing list http://www.kannel.org/pipermail/users/2012-February/017379.html did you able to send DLR to http generic smsc ? No. I don't use http smsc so I didn't tried to fiddle with the problem. Ahmed Shabana Mob: +20 (10) 03325373 Email: a.shab...@cequens.commailto:a.shab...@cequens.com | web: www.cequens.comhttp://www.cequens.com [http://www.m-styledesign.com/cequens/email-signature/logo.jpg] -- Kind regards, Milan -- Arvanta,http://www.arvanta.net Please do not send me e-mail containing HTML code or documents in proprietary format (word, excel, pps and so on)
Re: Translate SMPP requests to different SMS api
You need smppbox for that. Is included in kannel sources. Regards Alvaro On 7/23/13, Christopher Ward c.j.ward26...@gmail.com wrote: Currently doing some work on a server that provides SMS services, and utilises their own PHP apis to do so. However a user wishes to use SMPP in order to send and receive their batches of SMS. Ideally what I am required to do is configure an SMPP Server to receive incoming requests from the client to send messages, but then instead translate the requests to an API on the server to handle it instead. Essentially I just need to make it appear to the user that SMPP is being used to handle their SMS batches whilst instead we use our usual SMS send API like normal. I know Kannel utilises HTTP requests, so I imagine it would be as simple as configuring the gateway as an SMPP server to HTTP POST requests with necessary information (i.e. sender, destination, message, time etc) to a url on our Apache server, but I am a bit lost at which point in the configuration I can achieve such without setting up any of the SMS sending\receiving features of the software itself. Running on: CentOS 5 virtual server LAMP stack gateway-1.4.3 source installed libxml2 and libxml2-dev Any pointers would be greatly appreciated. -- |-| Envíe y Reciba Datos y mensajes de Texto (SMS) hacia y desde cualquier celular y Nextel en el Perú, México y en mas de 180 paises. Use aplicaciones 2 vias via SMS y GPRS online Visitenos en www.perusms.NET www.smsglobal.com.mx y www.pravcom.com
Re: Translate SMPP requests to different SMS api
Hi Always cc kannel user list. This way you have more chances to get answers. I never worked with smppbox but if I'm not wrong, you need to use routing options in kannel. Try a search on smppbox + routing on kannel list. Regards Alvaro |-| Envíe y Reciba Datos y mensajes de Texto (SMS) hacia y desde cualquier celular y Nextel en el Perú, México y en mas de 180 paises. Use aplicaciones 2 vias via SMS y GPRS online Visitenos en www.perusms.NET www.smsglobal.com.mx y www.pravcom.com On Wed, Jul 24, 2013 at 6:59 PM, Christopher Ward c.j.ward26...@gmail.comwrote: Thanks for the reply. I do have smppbox, but I'm more after how to approach the configuration to allow me to HTTP POST to the api on the lamp server. As in at which point in the Kannel service can I achieve this? i.e Smppbox -- loop back smsc -- bearer box -- sms box --- HTTP PHP api What and where do I need to configure in order to HTTP POST? Thanks, Chris You need smppbox for that. Is included in kannel sources. Regards Alvaro On 7/23/13, Christopher Ward c.j.ward26...@gmail.com wrote: Currently doing some work on a server that provides SMS services, and utilises their own PHP apis to do so. However a user wishes to use SMPP in order to send and receive their batches of SMS. Ideally what I am required to do is configure an SMPP Server to receive incoming requests from the client to send messages, but then instead translate the requests to an API on the server to handle it instead. Essentially I just need to make it appear to the user that SMPP is being used to handle their SMS batches whilst instead we use our usual SMS send API like normal. I know Kannel utilises HTTP requests, so I imagine it would be as simple as configuring the gateway as an SMPP server to HTTP POST requests with necessary information (i.e. sender, destination, message, time etc) to a url on our Apache server, but I am a bit lost at which point in the configuration I can achieve such without setting up any of the SMS sending\receiving features of the software itself. Running on: CentOS 5 virtual server LAMP stack gateway-1.4.3 source installed libxml2 and libxml2-dev Any pointers would be greatly appreciated. -- |-| Envíe y Reciba Datos y mensajes de Texto (SMS) hacia y desde cualquier celular y Nextel en el Perú, México y en mas de 180 paises. Use aplicaciones 2 vias via SMS y GPRS online Visitenos en www.perusms.NET www.smsglobal.com.mx y www.pravcom.com
Unsubscribe
Unsubscribe -Original Message- From: Alvaro Cornejo cornejo.alv...@gmail.com Sent: 7/24/2013 7:25 PM To: Christopher Ward c.j.ward26...@gmail.com; users users@kannel.org Subject: Re: Translate SMPP requests to different SMS api Hi Always cc kannel user list. This way you have more chances to get answers. I never worked with smppbox but if I'm not wrong, you need to use routing options in kannel. Try a search on smppbox + routing on kannel list. Regards Alvaro |-| Envíe y Reciba Datos y mensajes de Texto (SMS) hacia y desde cualquier celular y Nextel en el Perú, México y en mas de 180 paises. Use aplicaciones 2 vias via SMS y GPRS online Visitenos en www.perusms.NET www.smsglobal.com.mx y www.pravcom.com On Wed, Jul 24, 2013 at 6:59 PM, Christopher Ward c.j.ward26...@gmail.com wrote: Thanks for the reply. I do have smppbox, but I'm more after how to approach the configuration to allow me to HTTP POST to the api on the lamp server. As in at which point in the Kannel service can I achieve this? i.e Smppbox -- loop back smsc -- bearer box -- sms box --- HTTP PHP api What and where do I need to configure in order to HTTP POST? Thanks, Chris You need smppbox for that. Is included in kannel sources. Regards Alvaro On 7/23/13, Christopher Ward c.j.ward26...@gmail.com wrote: Currently doing some work on a server that provides SMS services, and utilises their own PHP apis to do so. However a user wishes to use SMPP in order to send and receive their batches of SMS. Ideally what I am required to do is configure an SMPP Server to receive incoming requests from the client to send messages, but then instead translate the requests to an API on the server to handle it instead. Essentially I just need to make it appear to the user that SMPP is being used to handle their SMS batches whilst instead we use our usual SMS send API like normal. I know Kannel utilises HTTP requests, so I imagine it would be as simple as configuring the gateway as an SMPP server to HTTP POST requests with necessary information (i.e. sender, destination, message, time etc) to a url on our Apache server, but I am a bit lost at which point in the configuration I can achieve such without setting up any of the SMS sending\receiving features of the software itself. Running on: CentOS 5 virtual server LAMP stack gateway-1.4.3 source installed libxml2 and libxml2-dev Any pointers would be greatly appreciated. -- |-| Envíe y Reciba Datos y mensajes de Texto (SMS) hacia y desde cualquier celular y Nextel en el Perú, México y en mas de 180 paises. Use aplicaciones 2 vias via SMS y GPRS online Visitenos en www.perusms.NET www.smsglobal.com.mx y www.pravcom.com
dlr-storage = spool not supported
Why dlr-storage = spool not supported ? how to support it ? my configuration : group = core . dlr-storage = spool dlr-spool = /etc/kannel/dlr bearerbox cannot be executed if I commented dlr-spool line due to the following error PANIC: DLR: storage type 'spool' is not supported! If not commented dlr-spool, bearerbox cannot be executed due to the following error ERROR: Group 'core' may not contain field 'dlr-spool'.