Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
IchthysMaranatha authored Nov 23, 2021
1 parent 79c2c1e commit 58f573f
Showing 1 changed file with 1 addition and 70 deletions.
71 changes: 1 addition & 70 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Channel driver for Quectel and Simcom modules
=================================================
This should work with Quectel modules such as EC20, EC21, EC25, EG9x and Simcom sim7600 and possibly other models with voice over USB capability. Tested with the EC25-E mini-pcie module and Waveshare sim7600 g-h dongle. If the product page of your Quectel module contains the application note Voice over USB and UAC, you should be good to go. If it only has the note Voice over UAC, you can still use this driver but you will need to use an additional Asterisk alsa channel with it and bridge that with every call.
This should work with Quectel modules such as EC20, EC21, EC25, EG9x and Simcom sim7600 and possibly other models with voice over USB capability. Tested with the EC25-E mini-pcie module and Waveshare sim7600 g-h dongle. If the product page of your Quectel module contains the application note Voice over USB and UAC, you should be good to go. If it only has the note Voice over UAC, you can still use this driver but you will need to use an additional Asterisk alsa channel with it and bridge that with every call. Steps to use it can be found <a href="https://github.com/IchthysMaranatha/asterisk-chan-quectel/discussions/2">here</a>

I'm not a C programmer at all and this write-up may help those interested in improving this driver and also for supporting other modules such as those from Telit, U-blox, Sierra Wireless etc.

Expand Down Expand Up @@ -135,73 +135,4 @@ Other CLI commands:
quectel reload now
quectel reload when convenient

For reading installation notes please look to INSTALL file.


Gain control and Jitter buffer
--------------------------------


<img src="https://cloud.githubusercontent.com/assets/6702424/26686554/9253bc18-46ed-11e7-9bce-cad8e2396435.png"
width="800px" height="" />


In order to perform good quality calls you will need to take care of:

* **Automatic gain control**:

chan_quectel does not control the gain of the audio stream it receive.
This result of Alice hearing Bob's voice loud and noisy.
It is possible to manually manage the gain in *quectel.conf* but
the better option is by far to apply automatic gain control with
the dialplan function AGC.


* **Jitter buffer**:

Since asterisk 12 it is no longer possible to enable Jitter buffer
in quectel.conf it has to be applied in the dialplan.
The lack of Jitter buffer result in severe loss in the transport
of the voice from Bob to Alice.


#### Dialplan example

To set JITTERBUFFER and AGC in the dialplan on the appropriate channel
regardless of who is initiating the call we will have to use
the "b" option of Dial:

b( context^exten^priority )

Before initiating an outgoing call, Gosub to the specified
location using the newly created channel.

The Gosub will be executed for each destination channel."

[from-quectel]
; This will be executed by an indbound Quectel channel ( call initiated on the quectel side )
exten => _[+0-9].,1,Dial(SIP/bob,b(from-quectel^outbound^1)) ;

; This will be executed by an outbound SIP channel ( channel generated by dial )
exten => outbound,1,Set(JITTERBUFFER(adaptive)=default)
same => n,Set(AGC(rx)=4000)
same => n,Return()

[from-sip]
; This will be executed by an inbound SIP channel ( call initiated on the SIP side )
exten => _[+0-9].,1,Set(JITTERBUFFER(adaptive)=2000,1600,120)
same => n,Set(AGC(rx)=4000)
same => n,Dial(Quectel/i:${IMEI_OF_MY_QUECTEL}/${NUMBER_OF_BOB})


Note: To use automatic gain control dialplan function (AGC) you will need
to compile Asterisk with func_speex ( see in menuselect ).
On raspberry Pi you will need to compile and install speex and speexdsp yourself,
the version of speex provided by the depos does not support AGC.
(because compiled with fixed point instead of floating point)
see: [HOWTO](https://gist.github.com/garronej/01f0dac45efe9161969a83890c019efa)


For additional information about Huawei dongle usage look to
chan\_dongle Wiki at https://wiki.e1550.mobi and chan\_quectel project home at
https://github.com/t4rd15/asterisk-chan-quectel/

0 comments on commit 58f573f

Please sign in to comment.