You could also do this with proper if-up script. Mbuni tries to
connect to MMS proxy when it sees pppd pid file. On other hand pid
file is created _before_ interface IP and routing is set up. I solved
this by symlinking ppp pid to some path in if-up after everything is
set-up and making mbuni to look for a file on that path.

On Tue, Aug 03, 2010 at 03:13:09PM +1100, Emmanuel CHANSON wrote:
> Hello mbuni users and developers,
> 
> Mbuni CVS 20100702
> Modem: Sagem My300x
> 
> Purpose: Try to send MMS through MM1 GPRS modem but failed.
> 
> I did not succeed to send a MMS through MM1 GPRS modem connection.
> When sending a MMS through mmsbox interface I do see the pppd process
> starting to connect to GPRS but fail the first time then succeed, but Mbuni
> says:
> 
> WARNING: mmsbox_mm1.c:375 <handle_mm1> [mmsbox-mm1] [n/a] *failed to start
> GPRS connection. waiting...
> *
> Mbuni did not make a retry after the GPRS connection was established.*
> 
> Find below:
> *- mmsbox.log
> - messages file (pppd message)
> - mmmsbox.conf*
> 
> Questions:
> **- Did you ever experiment this situation ?
> - Do I have to use another process instead of pppd ?
> - Why Mbuni does not retry to send the MMS stored in pool ?**
> **- Problem of configuration ? of mbuni or routing issue to contact MMS-C**
> *- I saw an another post where a someone implement a delay (from Ben
> Hardill):*
> ------------------
> **In order to get it all working I had to add a small delay after starting
> PPP as Mbuni was trying to send the post before the routing was all up and
> running properly, so I have added the following just after the call to start
> ppp in mmsbox_mm1.c
> 
>          if (mm1->gprs_on)
> 
>               pid = start_gprs(mm1->gprs_on, mm1->gprs_pid);
> 
>               gwthread_sleep(3);   #<--- short pause to allow ppp to finish
> setting up the connection
> 
>          if (pid<  0) {
> 
>               mms_warning(0, "mmsbox-mm1", NULL,"failed to start GPRS
> connection. waiting...");*
> *--------------------------
> *
> Starting log:
> mmsbox.log:
> -------------------
> [r...@navette mbuni]# mmsbox /etc/mbuni/mmsbox.conf
> 2010-08-03 14:31:44 [3327] [0] INFO: Debug_lvl = -1, log_file = <none>,
> log_lvl = 0
> 2010-08-03 14:31:44 [3327] [0] INFO: Added logfile
> `/var/log/mbuni/mmsbox.log' with level `0'.
> 2010-08-03 14:31:44 [3327] [0] INFO: Started access logfile
> `/var/log/mbuni/mmsbox-access.log'.
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 1 (mmsbox_cdr.c:(void
> *)cdr_logger_func)
> 2010-08-03 14:31:44 [3327] [0] INFO: HTTP: Opening server at port 10002.
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 2
> (gwlib/fdset.c:poller)
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 3
> (gwlib/http.c:server_thread)
> 2010-08-03 14:31:44 [3327] [1] DEBUG: Thread 1 (mmsbox_cdr.c:(void
> *)cdr_logger_func) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [0] INFO: mmsbox_cfg.c:578 <start_mmsc_from_conf>
> [mmsbox] [n/a] Loaded MMSC[modem], allow=[(null)], deny=[(null)]
> group_id=[modem]
> 2010-08-03 14:31:44 [3327] [0] INFO: HTTP: Opening server at port 3130.
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 4
> (mmsbox_mm1.c:(gwthread_func_t *)handle_notify)
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 5
> (mmsbox_mm1.c:(gwthread_func_t *)handle_mm1)
> 2010-08-03 14:31:44 [3327] [0] INFO: mmsbox_cfg.c:529
> <mmsbox_start_mmsc_conn> [mmsbox] [n/a] Startup for mmsc [modem] complete
> 2010-08-03 14:31:44 [3327] [2] DEBUG: Thread 2 (gwlib/fdset.c:poller) maps
> to pid 3327.
> 2010-08-03 14:31:44 [3327] [0] WARNING: mmsbox_cfg.c:459
> <mms_load_mmsbox_settings> [mmsbox] [n/a] Empty or no password supplied for
> admin port. All requests will be allowed!
> 2010-08-03 14:31:44 [3327] [0] INFO: mmsbox.c:758 <main> [mmsbox] [n/a]
> ----------------------------------------
> 2010-08-03 14:31:44 [3327] [0] INFO: mmsbox.c:759 <main> [mmsbox] [n/a]
> Mbuni MMSBox  version cvs-20100702 starting
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 6
> (mmsbox.c:(gwthread_func_t *)sendmms_func)
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 7
> (mmsbox.c:(gwthread_func_t *)mmsbox_outgoing_queue_runner)
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 8
> (mms_queue.c:(gwthread_func_t *)tdeliver)
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 9
> (mms_queue.c:(gwthread_func_t *)tdeliver)
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 10
> (mms_queue.c:(gwthread_func_t *)tdeliver)
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 11
> (mms_queue.c:(gwthread_func_t *)tdeliver)
> 2010-08-03 14:31:44 [3327] [0] DEBUG: Started thread 12
> (mms_queue.c:(gwthread_func_t *)tdeliver)
> 2010-08-03 14:31:44 [3327] [5] DEBUG: Thread 5
> (mmsbox_mm1.c:(gwthread_func_t *)handle_mm1) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [5] INFO: mmsbox_mm1.c:363 <handle_mm1>
> [mmsbox-mm1] [n/a] handle_mm1 started
> 2010-08-03 14:31:44 [3327] [4] DEBUG: Thread 4
> (mmsbox_mm1.c:(gwthread_func_t *)handle_notify) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [3] DEBUG: Thread 3 (gwlib/http.c:server_thread)
> maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [10] DEBUG: Thread 10
> (mms_queue.c:(gwthread_func_t *)tdeliver) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [9] DEBUG: Thread 9 (mms_queue.c:(gwthread_func_t
> *)tdeliver) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [6] DEBUG: Thread 6 (mmsbox.c:(gwthread_func_t
> *)sendmms_func) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [11] DEBUG: Thread 11
> (mms_queue.c:(gwthread_func_t *)tdeliver) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [8] DEBUG: Thread 8 (mms_queue.c:(gwthread_func_t
> *)tdeliver) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [7] DEBUG: Thread 7 (mmsbox.c:(gwthread_func_t
> *)mmsbox_outgoing_queue_runner) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [12] DEBUG: Thread 12
> (mms_queue.c:(gwthread_func_t *)tdeliver) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [6] DEBUG: Started thread 13
> (mmsbox.c:(gwthread_func_t *)dispatch_sendmms_recv)
> 2010-08-03 14:31:44 [3327] [7] DEBUG: Started thread 14
> (mms_queue.c:(gwthread_func_t *)tdeliver)
> 2010-08-03 14:31:44 [3327] [6] DEBUG: Started thread 15
> (mmsbox.c:(gwthread_func_t *)dispatch_sendmms_recv)
> 2010-08-03 14:31:44 [3327] [7] DEBUG: Started thread 16
> (mms_queue.c:(gwthread_func_t *)tdeliver)
> 2010-08-03 14:31:44 [3327] [6] DEBUG: Started thread 17
> (mmsbox.c:(gwthread_func_t *)dispatch_sendmms_recv)
> 2010-08-03 14:31:44 [3327] [7] DEBUG: Started thread 18
> (mms_queue.c:(gwthread_func_t *)tdeliver)
> 2010-08-03 14:31:44 [3327] [6] DEBUG: Started thread 19
> (mmsbox.c:(gwthread_func_t *)dispatch_sendmms_recv)
> 2010-08-03 14:31:44 [3327] [7] DEBUG: Started thread 20
> (mms_queue.c:(gwthread_func_t *)tdeliver)
> 2010-08-03 14:31:44 [3327] [18] DEBUG: Thread 18
> (mms_queue.c:(gwthread_func_t *)tdeliver) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [6] DEBUG: Started thread 21
> (mmsbox.c:(gwthread_func_t *)dispatch_sendmms_recv)
> 2010-08-03 14:31:44 [3327] [7] DEBUG: Started thread 22
> (mms_queue.c:(gwthread_func_t *)tdeliver)
> 2010-08-03 14:31:44 [3327] [16] DEBUG: Thread 16
> (mms_queue.c:(gwthread_func_t *)tdeliver) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [13] DEBUG: Thread 13 (mmsbox.c:(gwthread_func_t
> *)dispatch_sendmms_recv) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [20] DEBUG: Thread 20
> (mms_queue.c:(gwthread_func_t *)tdeliver) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [22] DEBUG: Thread 22
> (mms_queue.c:(gwthread_func_t *)tdeliver) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [17] DEBUG: Thread 17 (mmsbox.c:(gwthread_func_t
> *)dispatch_sendmms_recv) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [19] DEBUG: Thread 19 (mmsbox.c:(gwthread_func_t
> *)dispatch_sendmms_recv) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [21] DEBUG: Thread 21 (mmsbox.c:(gwthread_func_t
> *)dispatch_sendmms_recv) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [15] DEBUG: Thread 15 (mmsbox.c:(gwthread_func_t
> *)dispatch_sendmms_recv) maps to pid 3327.
> 2010-08-03 14:31:44 [3327] [14] DEBUG: Thread 14
> (mms_queue.c:(gwthread_func_t *)tdeliver) maps to pid 3327.
> 
> 
> MMS send through MMS interface of mmsbox:
> # lynx -dump "
> http://localhost:10002/?username=tester&password=foobar&mmsc=modem&to=%2B87773502/TYPE=PLMN&subject=Test&text=MMS-1
> "
>   Accepted: Mbuni-msg.7610.x1.24.85
> 
> mmsbox.log generated after the MMS:
> --------------------------------------------------------
> 2010-08-03 14:53:30 [2324] [3] DEBUG: HTTP: Creating HTTPClient for
> `127.0.0.1'.
> 2010-08-03 14:53:30 [2324] [3] DEBUG: HTTP: Created HTTPClient area
> 0xb5700ab0.
> 2010-08-03 14:53:30 [2324] [18] DEBUG: WSP: Mapping `text/plain', WSP 1.2 to
> 0x0003.
> 2010-08-03 14:53:30 [2324] [18] INFO: mmsbox.c:1366 <make_and_queue_msg>
> [mmsbox] [n/a] MMSBox: Queued message from service [sendmms-user], [transid
> [Mbuni-msg.7610.x1.24.85]: q-qf7610.1.x324.69
> 2010-08-03 14:53:30 [2324] [18] DEBUG: HTTP: Destroying HTTPClient area
> 0xb5700ab0.
> 2010-08-03 14:53:30 [2324] [18] DEBUG: HTTP: Destroying HTTPClient for
> `127.0.0.1'.
> 2010-08-03 14:53:30 [2324] [18] INFO: mmsbox.c:1613 <dispatch_sendmms_recv>
> [mmsbox] [n/a] MMSBox.mmssend: u=tester, Queued [Accepted:
> Mbuni-msg.7610.x1.24.85]
> 2010-08-03 14:53:35 [2324] [7] DEBUG: Queued to thread 0 for
> /var/spool/mbuni/mmsbox_outgoing/q/qf7610.1.x324.69, sendt=1280807610,
> tnow=1280807615
> arg 0: pppd
> arg 1: call
> arg 2: mobile-auth
> cat: /var/run/ppp0.pid: Aucun fichier ou dossier de ce type
> 2010-08-03 14:53:40 [2324] [5] INFO: mmsbox_mm1.c:659 <start_gprs>
> [mmsbox-mm1] [n/a] waiting for connection: 0, pid=2457 cpid=2457,
> ifexited=1, exitstatus=0
> 2010-08-03 14:53:40 [2324] [5] WARNING: mmsbox_mm1.c:375 <handle_mm1>
> [mmsbox-mm1] [n/a] *failed to start GPRS connection. waiting...*
> 
> /var/log/messages:
> ----------------------------
> Aug  3 14:53:35 navette kernel: PPP generic driver version 2.4.2
> Aug  3 14:53:35 navette pppd[2462]: pppd 2.4.5 started by admin, uid 0
> Aug  3 14:53:36 navette chat[2463]: abort on (BUSY)
> Aug  3 14:53:36 navette chat[2463]: abort on (NO CARRIER)
> Aug  3 14:53:36 navette chat[2463]: abort on (VOICE)
> Aug  3 14:53:36 navette chat[2463]: abort on (NO DIALTONE)
> Aug  3 14:53:36 navette chat[2463]: abort on (NO DIAL TONE)
> Aug  3 14:53:36 navette chat[2463]: abort on (NO ANSWER)
> Aug  3 14:53:36 navette chat[2463]: abort on (DELAYED)
> Aug  3 14:53:36 navette chat[2463]: report (CONNECT)
> Aug  3 14:53:36 navette chat[2463]: timeout set to 6 seconds
> Aug  3 14:53:36 navette chat[2463]: send (ATQ0^M)
> Aug  3 14:53:36 navette chat[2463]: expect (OK)
> Aug  3 14:53:36 navette chat[2463]: ^M
> Aug  3 14:53:36 navette chat[2463]: OK
> Aug  3 14:53:36 navette chat[2463]:  -- got it
> Aug  3 14:53:36 navette chat[2463]: send (ATZ^M)
> Aug  3 14:53:37 navette chat[2463]: timeout set to 3 seconds
> Aug  3 14:53:37 navette chat[2463]: expect (OK)
> Aug  3 14:53:37 navette chat[2463]: ^M
> Aug  3 14:53:37 navette chat[2463]: ^M
> Aug  3 14:53:37 navette chat[2463]: OK
> Aug  3 14:53:37 navette chat[2463]:  -- got it
> Aug  3 14:53:37 navette chat[2463]: send (AT^M)
> Aug  3 14:53:37 navette chat[2463]: expect (OK)
> Aug  3 14:53:37 navette chat[2463]: ^M
> Aug  3 14:53:40 navette chat[2463]: alarm
> Aug  3 14:53:40 navette chat[2463]: send (AT^M)
> Aug  3 14:53:40 navette chat[2463]: expect (OK)
> Aug  3 14:53:40 navette chat[2463]: AT^M^M
> Aug  3 14:53:40 navette chat[2463]: OK
> Aug  3 14:53:40 navette chat[2463]:  -- got it
> Aug  3 14:53:40 navette chat[2463]: send (ATI^M)
> Aug  3 14:53:40 navette chat[2463]: expect (OK)
> Aug  3 14:53:40 navette chat[2463]: ^M
> Aug  3 14:53:40 navette chat[2463]: ATI^M^M
> Aug  3 14:53:40 navette chat[2463]: my300X GPRS^M
> Aug  3 14:53:40 navette chat[2463]: ^M
> Aug  3 14:53:40 navette chat[2463]: OK
> Aug  3 14:53:40 navette chat[2463]:  -- got it
> Aug  3 14:53:40 navette chat[2463]: send (ATZ^M)
> Aug  3 14:53:40 navette chat[2463]: expect (OK)
> Aug  3 14:53:40 navette chat[2463]: ^M
> Aug  3 14:53:40 navette chat[2463]: ATZ^M^M
> Aug  3 14:53:40 navette chat[2463]: OK
> Aug  3 14:53:40 navette chat[2463]:  -- got it
> Aug  3 14:53:40 navette chat[2463]: send (AT^M)
> Aug  3 14:53:40 navette chat[2463]: expect (OK)
> Aug  3 14:53:40 navette chat[2463]: ^M
> Aug  3 14:53:43 navette chat[2463]: alarm
> Aug  3 14:53:43 navette chat[2463]: send (AT^M)
> Aug  3 14:53:43 navette chat[2463]: expect (OK)
> Aug  3 14:53:43 navette chat[2463]: AT^M^M
> Aug  3 14:53:43 navette chat[2463]: OK
> Aug  3 14:53:43 navette chat[2463]:  -- got it
> Aug  3 14:53:43 navette chat[2463]: send (AT+CGDCONT=1,"IP","mms"^M)
> Aug  3 14:53:43 navette chat[2463]: expect (OK)
> Aug  3 14:53:43 navette chat[2463]: ^M
> Aug  3 14:53:43 navette chat[2463]: AT+CGDCONT=1,"IP","mms"^M^M
> Aug  3 14:53:43 navette chat[2463]: OK
> Aug  3 14:53:43 navette chat[2463]:  -- got it
> Aug  3 14:53:43 navette chat[2463]: send (ATDT*99***1#^M)
> Aug  3 14:53:43 navette chat[2463]: timeout set to 30 seconds
> Aug  3 14:53:43 navette chat[2463]: expect (CONNECT)
> Aug  3 14:53:43 navette chat[2463]: ^M
> Aug  3 14:53:44 navette chat[2463]: ATDT*99***1#^M^M
> Aug  3 14:53:44 navette chat[2463]: CONNECT
> Aug  3 14:53:44 navette chat[2463]:  -- got it
> Aug  3 14:53:44 navette chat[2463]: send (^M)
> Aug  3 14:53:44 navette pppd[2462]: Serial connection established.
> Aug  3 14:53:44 navette pppd[2462]: Using interface ppp0
> Aug  3 14:53:44 navette pppd[2462]: Connect: ppp0 <--> /dev/ttyACM0
> Aug  3 14:53:44 navette pppd[2462]: PAP authentication succeeded
> Aug  3 14:53:44 navette kernel: PPP Deflate Compression module registered
> Aug  3 14:53:45 navette pppd[2462]: not replacing existing default route via
> 192.168.0.1
> Aug  3 14:53:45 navette pppd[2462]: local  IP address 10.152.149.196
> Aug  3 14:53:45 navette pppd[2462]: remote IP address 192.168.254.254
> 
> 
> and nothing after...
> 
> # ifconfig:
> eth1      Link encap:Ethernet  HWaddr 00:16:E6:4E:0C:2B
>           inet adr:192.168.0.2  Bcast:192.168.0.255  Masque:255.255.255.0
>           adr inet6: fe80::216:e6ff:fe4e:c2b/64 Scope:Lien
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:1585 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:1354 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 lg file transmission:1000
>           RX bytes:1349508 (1.2 MiB)  TX bytes:283403 (276.7 KiB)
>           Interruption:20
> 
> lo        Link encap:Boucle locale
>           inet adr:127.0.0.1  Masque:255.0.0.0
>           adr inet6: ::1/128 Scope:Hôte
>           UP LOOPBACK RUNNING  MTU:16436  Metric:1
>           RX packets:177 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:177 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 lg file transmission:0
>           RX bytes:12005 (11.7 KiB)  TX bytes:12005 (11.7 KiB)
> 
> ppp0      Link encap:Protocole Point-à-Point
>           inet adr:10.152.149.196  P-t-P:192.168.254.254
> Masque:255.255.255.255
>           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
>           RX packets:4 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 lg file transmission:3
>           RX bytes:58 (58.0 b)  TX bytes:76 (76.0 b)
> 
> # netstat -rn
> Table de routage IP du noyau
> Destination     Passerelle      Genmask         Indic   MSS Fenêtre irtt
> Iface
> 192.168.254.254 0.0.0.0         255.255.255.255 UH        0 0          0
> ppp0
> 192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0
> eth1
> 169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0
> eth1
> 0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0
> eth1
> 
> 
> mmsbox.conf:
> ---------------------
> [r...@navette ~]# cat /etc/mbuni/mmsbox.conf
> group = core
> log-file = /var/log/mbuni/mmsbox.log
> access-log = /var/log/mbuni/mmsbox-access.log
> log-level = 0
> 
> group = mbuni
> storage-directory = /var/spool/mbuni
> max-send-threads = 5
> maximum-send-attempts = 50
> default-message-expiry = 360000
> queue-run-interval = 5
> send-attempt-back-off = 300
> sendmms-port = 10002
> 
> #group = mmsc
> #id = local
> #mmsc-url = http://mbuni:t...@localhost:1982/soap
> #incoming-username = user
> #incoming-password = pass
> #incoming-port = 12345
> #type = soap
> 
> # Sample conf for MMSBox using a modem (MM1)
> group = mmsc
> id = modem
> type = custom
> custom-settings = "gprs-on=pppd call mobile-auth;gprs-pid=cat
> /var/run/ppp0.pid|head -1;port=3130;mmsc-url=
> http://mms.xxxxx.xx/mmsc;proxy=192.168.39.201;msisdn=100";
> mmsc-library = /usr/local/lib/libmmsbox_mm1.so
> 
> 
> group = mms-service
> name = me
> post-url = 
> http://localhost/~bagyenda/test-mbuni.php<http://localhost/%7Ebagyenda/test-mbuni.php>
> catch-all = true
> http-post-parameters = fx=true&images[]=%i&text[]=%t&skip=1
> accept-x-mbuni-headers = true
> pass-thro-headers = X-NOKIA-MMSC-Charging,X-NOKIA-MMSC-Charged-Party
> keyword = test
> omit-empty = no
> suppress-reply = true
> service-code = regular
> 
> group = mms-service
> name = fullmessage
> get-url = http://localhost/images/apache_pb.gif
> # http-post-parameters = fx=true&image=%i&text=%t
> accept-x-mbuni-headers = true
> keyword = thixs
> 
> group = send-mms-user
> username = tester
> password = foobar
> faked-sender = 100
> 
> 
> 
> Regards,
> 
> -- 
> Emmanuel

> _______________________________________________
> Users mailing list
> Users@mbuni.org
> http://lists.mbuni.org/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@mbuni.org
http://lists.mbuni.org/mailman/listinfo/users

Reply via email to