. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Začínáme s PGSM: Hlasové funkce s DTMF
1. června 2015 - 7:00 | Pandatron | Začínáme s PGSM: Hlasové funkce s DTMF | Komentářů: 0  

Začínáme s PGSM: Hlasové funkce a DTMF

Vývoj mobilních aplikací s GSM moduly PGSM krok za krokem. Třetí díl se zaměřuje na podrobný popis odchozího a příchozího hovoru, podpory hlasových funkcí a DTMF.

V předchozím díle našeho seriálu jsme se seznámili s GSM moduly PGSM, které jsou určeny na podporu bezdrátových aplikací a pro zajištění bezdrátového přenosu dat. Jejich základem jsou špičkové Quad-Band obvody M10 společnosti Quectel, které kromě GSM technologie podporují také datové přenosy kategorie GPRS Class 12 a zároveň integrují plnou podporu datových služeb vyšší úrovně - TCP/IP, HTTP, SMTP, FTP a celou řadu dalších. Kromě hands-free a DTMF je u těchto obvodů konstruktérům k dispozici také podpora LCD displeje, maticové klávesnice či například uživatelský telefonní seznam s funkcí vyhledávání kontaktů! Více informací naleznete již v samotném Začínáme s PGSM: Seznámení s M10.


Obr. 1: Moduly PGSM s podporou Quad-Band GSM a GPRS Class 12

Odchozí a příchozí hovor
Jednou z nejzákladnějších funkcí každého GSM/GPRS modulu je samozřejmě podpora telefonních hovorů a hlasových funkcí. Tedy možnost zahájení a příjmu hovoru, vysílání a příjem DTMF kódů či například přesměrování hovoru a další funkce.

Zahájení a ukončení hovoru je realizováno prostřednictvím povelů ATD a ATH, což je koneckonců standard pro většinu telefonních a GSM modemů. Pokud tedy chceme vytočit nějaké číslo, stačí zadat:

ATD00420723846377; (vytočení libovolného čísla)

OK
ATH (zavěšení)

OK

Jednoduchým povelem ATDL lze opakovat vytočení posledního volaného čísla.

ATDL (vytočení naposledy volaného čísla)

OK
ATH (zavěšení)

OK

A naopak, pokud se někdo snaží dovolat na náš modul, je nám to oznámeno opakovaným zasílám zprávy RING v intervalu cca. 1s, přehráváním melodie do zvukového výstupu a sepnutím pinu RI na zem (v klidovém stavu jsou na pinu RI 3,0V). V tom okamžiku můžeme hovor přijmout zasláním povelu ATA, nebo odmítnout povelem ATH.

RING (vyzvánění)

RING

RING
ATA (přijmutí hovoru)

OK
ATH (zavěšení)

OK

Mimo jiného je však možné například pomocí ATS0 nastavit i automatické zvednutí hovoru po určitém počtu zazvonění (zpráv RING), což se může využít především u různých automatických a bezpečnostních systémů. Zadáním ATS0=3 dojde k automatickému zvednutí hovoru po třetím zazvonění. Vypnout funkce (což je rovněž defaultní nastavení z výroby) lze zadáním ATS0=0.

ATS0=3 (automatické zvednutí příchozího hovoru po třetím zvonění)

OK

RING

RING

RING

Nyní došlo k automatickému zvednutí příchozího hovoru, což není oznámeno žádnou zprávou

Vypsat aktuálně probíhající spojení, tedy ať již hlasové hovory, FAX nebo datové spojení, lze pomocí povelu AT+CLCC.

AT+CLCC (výpis aktuálně probíhajících spojení)

+CLCC: 1,0,0,0,0,"00420723846377",129,""

OK

Součástí odpovědi, jejíž úplný formát je uveden na následujícím řádku, je celá řada informací o jednotlivých spojeních. Jejich základní popis je uveden v následující tabulce a podrobnější informace jsou samozřejmě k dispozici v příslušné dokumentaci dostupné na konci článku.

+CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>[,""]]<CR><LF>
+CLCC: <id2>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>[,""]]<CR><LF>

Význam jednotlivých parametrů:

<idx> Integer type; call identification number as described in GSM 02.30 sub clause 4.5.5.1;
this number can be used in +CHLD Command operations
<dir> 0
1
Mobile originated (MO) call
Mobile terminated (MT) call
<stat>
0
1
2
3
4
5
State of the call
Active
Held
Dialing (MO call)
Alerting (MO call)
Incoming (MT call)
Waiting (MT call)
<mode>
0
1
2
9
Bearer/tele service:
Voice
Data
FAX
Unknown
<mpty> 0
1
Call is not one of multiparty (conference) call parties
Call is one of multiparty (conference) call parties
<number>   Phone number in string type in format specified by <type>
<type>
129
145
Type of address of octet in integer format;
Unknown type(IDSN format number)
International number type(ISDN format)

Podobně lze zapnout identifikaci příchozích hovorů a zobrazení čísla volaného. K tomuto účelu slouží jednoduše povel AT+CLIP, případně také AT+CLIR jehož pomocí je možné provést další nastavení. Aktivace zobrazení čísla příchozího hovoru se provede jednoduše zasláním AT+CLIP=1.

AT+CLIP=1 (aktivace identifikace volajícího)

OK
AT+CLIP? (ověření aktuálního nastavení)

+CLIP: 1,1

OK

RING
(příchozí hovor)

+CLIP: "+420723846377",145,"",,"",0
(příchozí hovor je od čísla 723 846 377)

RING

+CLIP: "+420723846377",145,"",,"",0

RING

Hodnota 145 ve zprávě znamená uvedení telefonního čísla v mezinárodním formátu a další hodnoty reprezentují pořadí čísla v interním telefonním seznamu a CLI valid. Úplný formát povelu je uveden na následujícím řádku.

+CLIP: <number>, <type>,"",,<alphaId>,<CLI validity>

Význam jednotlivých parametrů:

<number> Phone number in string type of calling address in format specified by <type>
<type>
129
145
Type of address octet in integer format;
Unknown type(IDSN format number)
International number type(ISDN format)
<alphaId> String type alphanumeric representation of <number>
corresponding to the entry found in phone book
<CLI validity> 0
1
2
CLI valid
CLI has been withheld by the originator
CLI is not available due to interworking problems or
limitations of originating network

Mimo to modul umožňuje navázání dvou telefonních hovorů zároveň, mezi kterými lze jednoduše přepínat. Jedná se o jakousi alternativu konferenčních hovorů s tím rozdílem, že aktivní může být vždy pouze jediný hovor a ostatní jsou přidrženy. Slouží k tomu povel AT+CHLD a jeho parametry. Funkci si nejlépe ukážeme na jednoduchém příkladu s využitím bezplatných linek a již popsaného povelu AT+CLCC.

ATD00420723846377; (vytočení čísla 1)

OK
ATD00420800135135; (vytočení čísla 2)

OK
AT+CLCC

+CLCC: 1,0,1,0,0,"00420723846377",129,""
+CLCC: 2,0,0,0,0,"00420800135135",129,""

OK
AT+CHLD=2 (přepnutí na hovor 1)

OK
AT+CLCC

+CLCC: 1,0,0,0,0,"00420723846377",129,""
+CLCC: 2,0,1,0,0,"00420800135135",129,""

OK
AT+CHLD=1 (ukončení aktivního hovoru 1)

OK
ATD00420800145145; (vytočení čísla 3)

OK
AT+CLCC

+CLCC: 1,0,0,0,0,"00420800145145",129,""
+CLCC: 2,0,1,0,0,"00420800135135",129,""

OK
ATH (ukončení všech probíhajících hovorů)

OK

Formát povelu AT+CHLD:

+CHLD=[<n>]

Význam jednotlivých parametrů:

<n> 0 Terminate all held calls or UDUB (User Determined User
Busy) for a waiting call. If a call is waiting, terminate the
waiting call. Otherwise, terminate all held calls (if any).
1 Terminate all active calls (if any) and accept the other call
(waiting call or held call). It can not terminate active call if
there is only one call.
1X Terminate the specific call number X (X= 1-7)( active,
waiting or held)
2 Place all active calls on hold (if any) and accept the other call
(waiting call or held call) as the active call
2X Place all active calls except call X (X= 1-7) on hold
3 Add the held call to the active calls

Mezi další podporované povely patří také AT+CPUC a AT+CCWE určené k nastavení cenové tabulky a následnému zjištění ceny posledního hovoru.

Hlasové funkce
Pro podporu hlasových funkcí mají moduly PGSM integrovaný standardní konektor Jack 3,5 stereo pro hands-free (sluchátko + elektretový mikrofon), viz PGSM – GSM/GPRS modul pro vývoj a dále pak na pinové liště J2 jsou vyvedeny symetrické signály pro připojení druhého sluchátka/reproduktoru a mikrofonu. Standardně jsou moduly výrobcem nastaveny tak, že na hands-free je přehrávána vyzváněcí melodie při příchozím hovoru, avšak samotný hovor je uskutečňován přes signály na pinu J2. Pokud chceme naopak jako hlavní zvukový vstup/výstup použít Jack konektor hands-free, provedeme to povelem AT+QAUDCH=1 a zpět na konektor J2 audio přepneme povelem AT+QAUDCH=0. Jen upozorňuji, že při vypnutí modulu dojde ke ztracení uvedeného nastavení a po zapnutí je třeba ho zaslat znovu.

AT+QAUDCH=1 (audio směrovat na konektor Jack a připojené hands-free)

OK
AT+QAUDCH=0 (audio směrovat na piny MIC1 a SPK1 na konektoru J2)

OK

Pro nastavení hlasitosti je k dispozici hned několik povelů. Povel AT+CLVL slouží k nastavení hlasitosti aktuálního zvukového výstupu (sluchátka). Hlasitost lze nastavit v rozmezí 0 až 150, kdy standardní hodnotou je 40 a vyšší hodnota znamená vyšší hlasitost.
Naproti tomu citlivost mikrofonu se nastavuje pomocí AT+QMIC. Při zadání AT+QMIC? získáme tři různé hodnoty (standardně 4, 9, 8), kdy první značí hlasitost hlavního mikrofonu, druhá mikrofonu hands-free a třetí Loudspeaker mikrofonu. Citlivost jednotlivých vstupů lze nastavit v rozmezí 0 až 15 (opět vyšší hodnota znamená vyšší citlivost), ovšem nastavuje se vždy jen jedna hlasitost (0, 1, 2). Například pro zvýšení citlivosti hands-free (1) mikrofonu na hodnotu 15 tedy napíšeme AT+QMIC=1,15.
Aktivní mikrofon lze jednoduše ztišit pomocí funkce MUTE povelem AT+CMUT=1. Avšak zvukový výstup modulu tím však není ovlivněn a aktivovaná funkce MUTE se rovněž vypne ukončením probíhajícího hovoru.

AT+CLVL? (zjištění aktuální hlasitosti)

+CLVL: 40

OK
AT+CLVL=60 (nastavení hlasitosti na hodnotu 60)

OK
AT+QMIC? (zjištění aktuální citlivosti vstupů)

+QMIC: 4,9,8

OK
AT+QMIC=1,15 (zvýšení citlivosti hands-free mikrofonu z 9 na 15)

OK
AT+QMIC? (ověření aktuální citlivosti vstupů)

+QMIC: 4,15,8

OK
AT+CMUT=1 (MUTE lze použít pouze při probíhajícím hovoru)

+CME ERROR: 3
ATD00420723846377; (zahájení telefonního hovoru)

OK
AT+CMUT=1 (MUTE – ON)

OK
AT+CMUT=0 (MUTE - OFF)

OK
ATH (zavěšení)

OK

Vyzváněcí melodie, která je vždy přehrávána na konektor Jack hands-free, lze změnit pomocí povelu AT+QSRT=8. K dispozici je celkem deset různých vyzváněcích melodií (1 – 10) a z výroby je nastavena melodie číslo osm.

AT+QSRT? (zjištění aktuálně nastavené vyzváněcí melodie)

+QSRT: 8

OK
AT+QSRT=1 (nastavení melodie č. 1)

OK
AT+QSRT=8 (nastavení melodie č. 8)

OK

Z dalších povelů, které se týkají zvukového vstupu či výstupu, bych jen v rychlosti zmínil například AT+QECHO a AT+QECHOEX pro změnu konfigurace nebo úplného vypnutí obvodu potlačení ozvěny, ovšem v typických aplikacích zde není třeba nic měnit. Podobně pak povely AT+CRSL pro nastavení hlasitosti vyzvánění, AT+CALM pro nastavení hlasitosti upozornění (alarmu), AT+QAUDLOOP pro vytvoření testovací zpětné audio smyčky.

AT+QECHO?

+QECHO: 253,0,10756,57351,1

OK
AT+QECHOEX?

+QECHOEX: 1,1,1,253,0,10756,57351,1

OK

Formát povelů AT+QECHO a AT+QECHOEX:

+QECHO: <control word>, <nlp>, <suppression value>,<nr>,<channel>
+QECHOEX: <echo flag >,<ul nr flag>,<dl nr flag>,<control word>,<nlp>,<suppression value>,<nr>,<channel>

Význam jednotlivých parametrů AT+QECHO:

<control word> 221
224
0
Suitable for handset and handset applications
Suitable for handfree application
Means disabling all echo algorithm
<nlp> Range is 0 - 2048. The greater the value, the more
reduction of echo. 0 means disabling the NLP algorithm
<suppression value> Range is 0 - 32767. The smaller the value, the more
reduction of echo. 0 means disabling the echo
suppression algorithm
<nr>
849
374
Noise reduction controller. Should NOT be set to 0.
Suitable for handset and headset applications
Suitable for handfree applications
<channel> 0
1
2
Normal channel
Handset channel
Loudspeaker channel

Význam jednotlivých parametrů AT+QECHOEX:

<echo flag> 0
1
2
3
Disable all echo algorithm
Enable AEC (Acoustic Echo Cancellation) echo algorithm
Enable EES (Enhanced Echo Suppression) echo algorithm
Enable ES (Echo Suppression) echo algorithm
<ul nr flag> 0
1
Disable uplink noise reduction controller
Enable uplink noise reduction controller
<dl nr flag> 0
1
Disable downlink noise reduction controller
Enable downlink noise reduction controller
<control word> 221
224
0
Suitable for handset and handset applications
Suitable for handfree applications
Disable all echo algorithm
<nlp> Range is 0 - 2048. The greater the value, the more
reduction of echo. 0 means disabling the NLP algorithm
<suppression value> Range is 0 - 32767. The smaller the value, the more
reduction of echo. 0 means disabling the echo
suppression algorithm
<nr>
849
374
Noise reduction controller. Should NOT be set to 0.
Suitable for handset and headset applications
Suitable for handfree application
<channel> 0
1
2
Normal channel
Handset channel
Loudspeaker channel

Tónová volba - DTMF
S podporou hlasových funkcí je ve většině průmyslových aplikací úzce spojena podpora DTMF, tedy tónové volby. Každý jistě ví, že se jedná o jednoduchou tabulku kombinující vždy dva tóny. V případě klasické telefonní linky se DTMF využívá pro vytáčení telefonního čísla a pro svou vysokou spolehlivost se velmi často používá k zadávání jednoduchých povelů hlasovým automatům a jiným automatizovaným systémům přímo pomocí numerické klávesnice telefonu.


Obr. 2: Kódování tónové volby
zdroj: Wikipedia

Moduly PGSM podporují jak vysílání, tak i příjem uživatelských DTMF kódů. Signál je přitom možné generovat buď lokálně do sluchátka nebo reproduktoru, nebo jej vysílat během probíhajícího hovoru k protistraně. Určeny jsou k tomu povely AT+QLDTMF pro generování do sluchátka modulu a AT+VTS pro vysílání DTMF při probíhajícím hovoru. V každém povelu lze odeslat až dvacet znaků oddělených čárkou.

AT+QLDTMF=1,"1,2,3,4" (generování tónové volby do připojeného sluchátka)

OK
ATD00420723846377; (zahájení telefonního hovoru)

OK
AT+VTS="1,2,3,4" (generování tónové volby do probíhajícího hovoru)

OK
ATH (zavěšení)

OK

Naproti tomu detekování a výpis příchozích DTMF kódů je třeba nejprve zapnout a pak již při probíhajícím hovoru pracuje automaticky. Zapnutí detekce DTMF je možné pomocí povelu AT+QTONEDET=1, případně doplněném o další parametry. Rovněž i pomocí povelu AT+QTDMOD je možné provést další konfiguraci integrovaného tónového dekodéru.

AT+QTONEDET=1 (zapnutí detekce DTMF kódů)

OK
ATD00420723846377; (zahájení telefonního hovoru)

OK

+QTONEDET: 49
(přijata číslice 1)

+QTONEDET: 50
(přijata číslice 2)

+QTONEDET: 51
(přijata číslice 3)

+QTONEDET: 70,100
(min. 100ms tón 2300Hz)
ATH (zavěšení)

OK

Formát povelů AT+QTONEDET a AT+QTDMOD:

+QTONEDET=<mode>[,<operate >][,<prefixpause>][,<lowthreshold>][,<highthreshold>]
+QTDMOD=<operatefuntion>,<funtionstatus>

Nastavení délky vysílaného kódu lze pomocí povelu AT+VTD=1. Hodnota reprezentuje délku tónu v 1/10 sekundy a může být v rozmezí 1 až 255. To však neplatí pro tóny generované lokálně do připojeného sluchátka, kde je délka tónu součástí AT+QLDTMF povelu a může být v rozsahu 1 – 1000.

V dalším díle seriálu o GSM modulech se zaměříme na příjem a odesílání SMS zpráv a práci s integrovaným telefonním seznamem.

Dostupnost a cena:
Jak moduly M10 společnosti Quectel, tak i uvedené PGSM jsou dostupné skladem prostřednictvím našeho eShopu a to na stránkách PGSM – GSM/GPRS modul s M10 nebo M10 QUECTEL. Cena PGSM představuje součet ceny M10, desky s plošnými spoji s potiskem, SMA konektoru a dalších součástek.

Dále jsou k dispozici rovněž i uvedené PU232F – USB/RS232 UART převodníky, SMA Antény 2J010 od společnosti 2J, které umožní bezproblémový příjem i za zhoršených příjmových podmínek, napájecí zdroje a další příslušenství.

Odkazy & Download:
Domovská stránka výrobce
Domovská stránka výrobce v českém jazyce
GSM modul Quectel M10
Dokumentace k GSM/GPRS modulu M10

PGSM – GSM modul s M10 v našem eShopu
M10 QUECTEL v našem eShopu
Anténa 2J010 - 900/1800/2400MHz
PU232F a PU232S - Převodníky USB/RS232







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře:
Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
PU232E - Převodník USB / sériový port (UART), modul
Kompaktní a jednoduše použitelný modul datového převodníku do USB portu.
Skladem od 199 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007