I am using a asterisk build for rasperry pi 4 (with the build in bluetooth linked to a crosscall phone) to run a gsm gateway
Asterisk 16.7.0 built by root @ raspbx on a armv6l running Linux on 2020-01-05 14:11:59 UTC
I use chan_mobile and can do calls using zoiper software which is connected to the asterisk server.
But the sound is not great. It is hached and the voice is just understandable.
Looking at the console asterisk -rvvvvv, I can see a notice from translate.c that there are some lost frames.
[2020-03-07 13:11:36] NOTICE[24150][C-00000001]: translate.c:597 ast_translate: 7952 lost frame(s) 7953/0 (slin@8000)->(gsm@8000)
Would someone know if this is linked to the bad audio quality ? and if there is a way to improve the quality.
Note that when I don’t use the gateway, everything works just fine and I can proceed with a call between 2 extensions, so I really think that it looks like a transcoding issue or something linked to chan_mobile.
I can see that the topics discussing chan_mobile looks quite old and I couldn’t find any about the ast_translate, is there a better way than chan_mobile to make a GSM gateway ?
Here is some console output from the sequence :
– Called Mobile/iphone/888
– Mobile/iphone-45ae is making progress passing it to PJSIP/1-00000000
> 0xb422b538 – Strict RTP learning after remote address set to: 2.15.192.35:8000
> 0xb422b538 – Strict RTP qualifying stream type: audio
> 0xb422b538 – Strict RTP switching source address to 192.168.1.7:8000
[2020-03-07 13:11:24] NOTICE[24150][C-00000001]: translate.c:597 ast_translate: 7362 lost frame(s) 7363/0 (slin@8000)->(gsm@8000)
– Mobile/iphone-45ae answered PJSIP/1-00000000
– Channel Mobile/iphone-45ae joined ‘simple_bridge’ basic-bridge <11be16e2-8d63-41d0-aca4-d6b7ba93ecc1>
– Channel PJSIP/1-00000000 joined ‘simple_bridge’ basic-bridge <11be16e2-8d63-41d0-aca4-d6b7ba93ecc1>
> 0xb422b538 – Strict RTP learning complete - Locking on source address 192.168.1.7:8000
[2020-03-07 13:11:29] NOTICE[24150][C-00000001]: translate.c:597 ast_translate: 7602 lost frame(s) 7603/0 (slin@8000)->(gsm@8000)
[2020-03-07 13:11:32] NOTICE[24150][C-00000001]: translate.c:597 ast_translate: 7780 lost frame(s) 7781/0 (slin@8000)->(gsm@8000)
[2020-03-07 13:11:36] NOTICE[24150][C-00000001]: translate.c:597 ast_translate: 7952 lost frame(s) 7953/0 (slin@8000)->(gsm@8000)
– Channel PJSIP/1-00000000 left ‘simple_bridge’ basic-bridge <11be16e2-8d63-41d0-aca4-d6b7ba93ecc1>
– Channel Mobile/iphone-45ae left ‘simple_bridge’ basic-bridge <11be16e2-8d63-41d0-aca4-d6b7ba93ecc1>
== Spawn extension (macro-dialout-trunk, s, 34) exited non-zero on ‘PJSIP/1-00000000’ in macro ‘dialout-trunk’
== Spawn extension (from-internal, 888, 5) exited non-zero on ‘PJSIP/1-00000000’
– Executing [h@from-internal:1] Macro(“PJSIP/1-00000000”, “hangupcall”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“PJSIP/1-00000000”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] ExecIf(“PJSIP/1-00000000”, “0?Set(CDR(recordingfile)=)”) in new stack
– Executing [s@macro-hangupcall:4] NoOp(“PJSIP/1-00000000”, "Mobile/iphone-45ae montior file= ") in new stack
– Executing [s@macro-hangupcall:5] GotoIf(“PJSIP/1-00000000”, “1?skipagi”) in new stack
– Goto (macro-hangupcall,s,7)
– Executing [s@macro-hangupcall:7] Hangup(“PJSIP/1-00000000”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 7) exited non-zero on ‘PJSIP/1-00000000’ in macro ‘hangupcall’