No return dlr-url when error code returned from smpp

2013-07-24 Thread Qqblog Qqblog
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:

2013-07-24 Thread Himanshu Matta
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:

2013-07-24 Thread sangprabv
%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 ?

2013-07-24 Thread Qqblog Qqblog
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 ?

2013-07-24 Thread Rudy Matela
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 ?

2013-07-24 Thread spameden
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

2013-07-24 Thread Porter, Kelvin
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

2013-07-24 Thread spameden
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 ?

2013-07-24 Thread Alvaro Cornejo
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

2013-07-24 Thread Milan P. Stanic
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

2013-07-24 Thread Alvaro Cornejo
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

2013-07-24 Thread Alvaro Cornejo
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

2013-07-24 Thread David Wachs
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

2013-07-24 Thread Qqblog Qqblog
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'.