Hi,

attached patch adds possibility to define bind addr ton and npi.

Please vote for commit.


Thanks,
Alex
=== doc/userguide/userguide.xml
==================================================================
--- doc/userguide/userguide.xml (revision 216)
+++ doc/userguide/userguide.xml (local)
@@ -3166,6 +3166,20 @@
                (Defaults to 1).
      </entry></row>
 
+    <row><entry><literal>bind-addr-ton</literal></entry>
+      <entry><literal>number</literal></entry>
+      <entry valign="bottom">
+      Optional, bind address TON setting for the link.
+               (Defaults to 0).
+     </entry></row>
+
+    <row><entry><literal>bind-addr-npi</literal></entry>
+      <entry><literal>number</literal></entry>
+      <entry valign="bottom">
+      Optional, bind address NPI setting for the link.
+               (Defaults to 0).
+     </entry></row>
+
    <row><entry><literal>msg-id-type</literal></entry>
      <entry><literal>number</literal></entry>
      <entry valign="bottom">
=== gw/smsc/smsc_smpp.c
==================================================================
--- gw/smsc/smsc_smpp.c (revision 216)
+++ gw/smsc/smsc_smpp.c (local)
@@ -146,6 +146,8 @@
     int source_addr_npi; 
     int dest_addr_ton; 
     int dest_addr_npi;
+    long bind_addr_ton;
+    long bind_addr_npi;
     int transmit_port; 
     int receive_port; 
     int quitting; 
@@ -255,6 +257,8 @@
     smpp->connection_timeout = connection_timeout;
     smpp->wait_ack = wait_ack;
     smpp->wait_ack_action = wait_ack_action;
+    smpp->bind_addr_ton = 0;
+    smpp->bind_addr_npi = 0;
  
     return smpp; 
 } 
@@ -1054,6 +1058,8 @@
     bind->u.bind_transmitter.interface_version = smpp->version;
     bind->u.bind_transmitter.address_range =  
        octstr_duplicate(smpp->address_range); 
+    bind->u.bind_transmitter.addr_ton = smpp->bind_addr_ton;
+    bind->u.bind_transmitter.addr_npi = smpp->bind_addr_npi;
     send_pdu(conn, smpp->conn->id, bind); 
     smpp_pdu_destroy(bind); 
  
@@ -1080,14 +1086,16 @@
  
     bind = smpp_pdu_create(bind_transceiver, 
                            counter_increase(smpp->message_id_counter)); 
-    bind->u.bind_transmitter.system_id = octstr_duplicate(smpp->username); 
-    bind->u.bind_transmitter.password = octstr_duplicate(smpp->password); 
+    bind->u.bind_transceiver.system_id = octstr_duplicate(smpp->username); 
+    bind->u.bind_transceiver.password = octstr_duplicate(smpp->password); 
     if (smpp->system_type == NULL) 
-        bind->u.bind_transmitter.system_type = octstr_create("VMA"); 
+        bind->u.bind_transceiver.system_type = octstr_create("VMA"); 
     else    
-        bind->u.bind_transmitter.system_type = 
octstr_duplicate(smpp->system_type); 
-    bind->u.bind_transmitter.interface_version = smpp->version;
-    bind->u.bind_transmitter.address_range = 
octstr_duplicate(smpp->address_range); 
+        bind->u.bind_transceiver.system_type = 
octstr_duplicate(smpp->system_type); 
+    bind->u.bind_transceiver.interface_version = smpp->version;
+    bind->u.bind_transceiver.address_range = 
octstr_duplicate(smpp->address_range); 
+    bind->u.bind_transceiver.addr_ton = smpp->bind_addr_ton;
+    bind->u.bind_transceiver.addr_npi = smpp->bind_addr_npi;
     send_pdu(conn, smpp->conn->id, bind); 
     smpp_pdu_destroy(bind); 
  
@@ -1124,6 +1132,8 @@
     bind->u.bind_receiver.interface_version = smpp->version;
     bind->u.bind_receiver.address_range =
         octstr_duplicate(smpp->address_range);
+    bind->u.bind_receiver.addr_ton = smpp->bind_addr_ton;
+    bind->u.bind_receiver.addr_npi = smpp->bind_addr_npi;
     send_pdu(conn, smpp->conn->id, bind);
     smpp_pdu_destroy(bind);
 
@@ -2111,6 +2121,9 @@
                        smpp_msg_id_type, autodetect_addr, alt_charset, 
alt_addr_charset,
                        service_type, connection_timeout, wait_ack, 
wait_ack_action); 
  
+    cfg_get_integer(&smpp->bind_addr_ton, grp, octstr_imm("bind-addr-ton"));
+    cfg_get_integer(&smpp->bind_addr_npi, grp, octstr_imm("bind-addr-npi"));
+
     conn->data = smpp; 
     conn->name = octstr_format("SMPP:%S:%d/%d:%S:%S",  
                               host, port, 
=== gwlib/cfg.def
==================================================================
--- gwlib/cfg.def       (revision 216)
+++ gwlib/cfg.def       (local)
@@ -345,6 +345,8 @@
     OCTSTR(source-addr-npi)
     OCTSTR(dest-addr-ton)
     OCTSTR(dest-addr-npi)
+    OCTSTR(bind-addr-ton)
+    OCTSTR(bind-addr-npi)
     OCTSTR(service-type)
     OCTSTR(source-addr-autodetect)
     OCTSTR(enquire-link-interval)

Reply via email to