单路的情况比较好整,多路时就要费点劲了。主要是要考虑各个猫的差异性,根据差异性对猫正确初始化。
每路电话都有一个call id(多方通话的AT+CHLD时用到,里面的选项1X,2X,其中的X就是call id),每个猫都有一条称之为General Indications的AT,正确初始化称为General Indications的AT(一般是打开一些选项),会从网络上传进来call id。如mtk的,用AT+ECPI=2初始化后,会返回
+ECPI:, , , , , , [, ]
。
1、wavecom的猫是: +wind
如初始化为AT+WIND=48
等于号的值是各位的累加
16 (bit 4) a new call identifier has been created (after an ATD command, +CCWA indication)
32 (bit 5) an active, held or waiting call has been released by network or other party
用wavecom的猫调phoneserver时,由于对方挂电话时,不会返回+wind:call_id的数据,详见如下:
he unsolicited answer will then be :
+WIND : [ , ]
: Call identifier, defined in +CLCC command.
The supported events are:
0 : The SIM presence pin has been detected as “SIM removed”
(depending from the 0 bit flow)
179
This confidential document is the property of WAVECOM and may not be copied or circulated without permission
AT commands interface
1 : The SIM presence pin has been detected as “SIM inserted”
2 : Calling party is alerting
3 : Module is ready to treat AT commands (except
phonebooks, AOC, SMS), at init or after AT+CFUN=1
4 : Module is ready to treat all AT commands, end of
phonebook init or swap (FDN to ADN)
5 : Call has been created (after ATD or +CCWA...)
6 : Call has been released, after a NO CARRIER, a
+CSSU: 5 indication, or after the release of a call waiting
7 : The network service is available for an emergency call.
8 : The network is lost.
9 : Audio ON.
故三方通话时,对于对方主动挂电话时,无法判断是哪一路挂了。也许是猫太旧了。调phoneserver用wavecom的猫行不通,不支3方通话(也许是我的猫太旧了或是我还不知道其他的方法),会导致phoneserver里的call id找不到死掉
2、MTK的猫: +ECPI
后来调mtk的猫,发现mtk的猫真是强大,一下的情况CLCC_MT_CALL, CSMCC_DISCONNECT_MSG,CSMCC_ALERT_MSG, CSMCC_CALL_PROCESS_MSG, CSMCC_SYNC_MSG,CSMCC_PROGRESS_MSG,CSMCC_CALL_CONNECTED_MSG,CSMCC_ALL_CALLS_DISC_MSG,CSMCC_CALL_ID_ASSIGN_MS都会返回
类似+ECPI:, , , , , , [, ]的数据
对于该初始化,可用插件的方式在gsmd里实现,也是些死。为了通用,用插件
3、CELLON (赛龙的猫):+PPURC
初始话类似wavecom的,也是各选项累加的方式
4、TI的猫: +cpi还是+pi,自己查手册去吧
阅读(2106) | 评论(0) | 转发(0) |