Good day.
I have SMPP connection to SMSC, which sends me destination addres such
as NNNN#NNNNNNNN, where N is a digit, but
dest_addr_ton: 0 = 0x00000000 - "Unknown" ton
dest_addr_npi: 0 = 0x00000000
Than kannel sends back response with command_status: 11 = 0x0000000b.
I think it because of there are '#' in destination address.
In the source code of smsc_smpp.c there are statement which allow such
destination address only with dest_addr_ton: 5 = 0x00000005.
But as mention in GSM 03.40 ""Unknown" is used when the user or
network has no a priori information about the numbering plan. In this case,
the Address-Value field is organized according to the network dialling plan,
e.g. prefix or escape digits might be present."
So may be it means that # is allowed for "dest_addr_ton: 0" too?
I have made some simple patch.
May be i'm wrong but now it's work fine for me.
--
Best regards, Roman.
--- gw/smsc/smsc_smpp.c Fri Jul 22 19:45:00 2005
+++ gw/smsc/smsc_smpp_patched.c Fri Jul 22 19:54:40 2005
@@ -400,7 +400,7 @@
}
/* now check dest addr range */
- if (ton != GSM_ADDR_TON_ALPHANUMERIC &&
!octstr_check_range(pdu->u.deliver_sm.destination_addr, 1, 256, gw_isdigit)) {
+ if (ton != GSM_ADDR_TON_ALPHANUMERIC && ton != GSM_ADDR_TON_UNKNOWN &&
!octstr_check_range(pdu->u.deliver_sm.destination_addr, 1, 256, gw_isdigit)) {
*reason = SMPP_ESME_RINVDSTADR;
goto error;
}