我在使用PJSIP时遇到了问题,被叫听到了我的声音,但我完全保持沉默
少数指针:
1) Chan_SIP运行完美
2) PBX和电话在同一个网络上(没有NAT)
3) 该问题仅发生在PRI上的传出呼叫上(使用IAX2中继时没有问题)
4) 当我通过AMI发起呼叫时,不会出现此问题
5) Asterisk版本-13.4.0 Freepbx版本-6.12.65-26 PJSIP版本-2.2 DAHDI版本-2.10.0.1
我知道PJSIP是实验性的,但我以前已经能够在PRI上使用PJSIP了
可能是什么问题
更新(2015年7月13日):
由于字符限制,我不得不删除以前的更新和日志中的许多行,但这应该无关紧要,因为问题发生在拨号后(没有拨号音)
从800分机打电话给我自己(替换了我的号码和出站cid)。以下是星号verbose和rtp调试日志:
-- Executing [MyNumber@from-internal:1] Macro("PJSIP/800-00000023", "user-callerid,LIMIT,EXTERNAL,") in new stack
-- Executing [s@macro-user-callerid:1] Set("PJSIP/800-00000023", "TOUCH_MONITOR=1436762959.1096921") in new stack
-- Executing [s@macro-user-callerid:2] Set("PJSIP/800-00000023", "AMPUSER=800") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("PJSIP/800-00000023", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("PJSIP/800-00000023", "1?Set(REALCALLERIDNUM=800)") in new stack
-- Executing [s@macro-user-callerid:5] Set("PJSIP/800-00000023", "AMPUSER=800") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("PJSIP/800-00000023", "0?limit") in new stack
-- Executing [s@macro-user-callerid:7] Set("PJSIP/800-00000023", "AMPUSERCIDNAME=800") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("PJSIP/800-00000023", "0?report") in new stack
-- Executing [s@macro-user-callerid:9] Set("PJSIP/800-00000023", "AMPUSERCID=800") in new stack
-- Executing [s@macro-user-callerid:10] Set("PJSIP/800-00000023", "__DIAL_OPTIONS=Ttr") in new stack
-- Executing [s@macro-user-callerid:11] Set("PJSIP/800-00000023", "CALLERID(all)="800" <800>") in new stack
-- Executing [s@macro-user-callerid:12] GotoIf("PJSIP/800-00000023", "0?limit") in new stack
-- Executing [s@macro-user-callerid:13] ExecIf("PJSIP/800-00000023", "1?Set(GROUP(concurrency_limit)=800)") in new stack
-- Executing [s@macro-user-callerid:14] GosubIf("PJSIP/800-00000023", "7?sub-ccss,s,1(from-internal,)") in new stack
-- Executing [s@sub-ccss:1] ExecIf("PJSIP/800-00000023", "0?Return()") in new stack
-- Executing [s@sub-ccss:2] Set("PJSIP/800-00000023", "CCSS_SETUP=TRUE") in new stack
-- Executing [s@sub-ccss:3] GosubIf("PJSIP/800-00000023", "0?monitor_config,1(from-internal,):monitor_default,1(from-internal,)") in new stack
-- Executing [monitor_default@sub-ccss:1] GotoIf("PJSIP/800-00000023", "0?is_exten") in new stack
-- Executing [monitor_default@sub-ccss:2] StackPop("PJSIP/800-00000023", "") in new stack
-- Executing [monitor_default@sub-ccss:3] Return("PJSIP/800-00000023", "FALSE") in new stack
-- Executing [s@macro-user-callerid:15] ExecIf("PJSIP/800-00000023", "0?Set(CHANNEL(language)=)") in new stack
-- Executing [s@macro-user-callerid:16] GotoIf("PJSIP/800-00000023", "1?continue") in new stack
-- Goto (macro-user-callerid,s,30)
-- Executing [s@macro-user-callerid:30] Set("PJSIP/800-00000023", "CALLERID(number)=800") in new stack
-- Executing [s@macro-user-callerid:31] Set("PJSIP/800-00000023", "CALLERID(name)=800") in new stack
-- Executing [s@macro-user-callerid:32] Set("PJSIP/800-00000023", "CDR(cnum)=800") in new stack
-- Executing [s@macro-user-callerid:33] Set("PJSIP/800-00000023", "CDR(cnam)=800") in new stack
-- Executing [s@macro-user-callerid:34] Set("PJSIP/800-00000023", "CHANNEL(language)=en") in new stack
-- Executing [MyNumber@from-internal:2] Gosub("PJSIP/800-00000023", "sub-record-check,s,1(out,MyNumber,dontcare)") in new stack
-- Executing [s@sub-record-check:1] GotoIf("PJSIP/800-00000023", "0?initialized") in new stack
-- Executing [s@sub-record-check:2] Set("PJSIP/800-00000023", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:3] Set("PJSIP/800-00000023", "NOW=1436762959") in new stack
-- Executing [s@sub-record-check:4] Set("PJSIP/800-00000023", "__DAY=13") in new stack
-- Executing [s@sub-record-check:5] Set("PJSIP/800-00000023", "__MONTH=07") in new stack
-- Executing [s@sub-record-check:6] Set("PJSIP/800-00000023", "__YEAR=2015") in new stack
-- Executing [s@sub-record-check:7] Set("PJSIP/800-00000023", "__TIMESTR=20150713-074919") in new stack
-- Executing [s@sub-record-check:8] Set("PJSIP/800-00000023", "__FROMEXTEN=800") in new stack
-- Executing [s@sub-record-check:9] Set("PJSIP/800-00000023", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:10] NoOp("PJSIP/800-00000023", "Recordings initialized") in new stack
-- Executing [s@sub-record-check:11] ExecIf("PJSIP/800-00000023", "0?Set(ARG3=dontcare)") in new stack
-- Executing [s@sub-record-check:12] Set("PJSIP/800-00000023", "REC_POLICY_MODE_SAVE=") in new stack
-- Executing [s@sub-record-check:13] ExecIf("PJSIP/800-00000023", "0?Set(REC_STATUS=NO)") in new stack
-- Executing [s@sub-record-check:14] GotoIf("PJSIP/800-00000023", "3?checkaction") in new stack
-- Goto (sub-record-check,s,17)
-- Executing [s@sub-record-check:17] GotoIf("PJSIP/800-00000023", "1?sub-record-check,out,1") in new stack
-- Goto (sub-record-check,out,1)
-- Executing [out@sub-record-check:1] NoOp("PJSIP/800-00000023", "Outbound Recording Check from 800 to MyNumber") in new stack
-- Executing [out@sub-record-check:2] Set("PJSIP/800-00000023", "RECMODE=dontcare") in new stack
-- Executing [out@sub-record-check:3] ExecIf("PJSIP/800-00000023", "1?Goto(routewins)") in new stack
-- Goto (sub-record-check,out,7)
-- Executing [out@sub-record-check:7] Gosub("PJSIP/800-00000023", "recordcheck,1(dontcare,out,MyNumber)") in new stack
-- Executing [recordcheck@sub-record-check:1] NoOp("PJSIP/800-00000023", "Starting recording check against dontcare") in new stack
-- Executing [recordcheck@sub-record-check:2] Goto("PJSIP/800-00000023", "dontcare") in new stack
-- Goto (sub-record-check,recordcheck,3)
-- Executing [recordcheck@sub-record-check:3] Return("PJSIP/800-00000023", "") in new stack
-- Executing [out@sub-record-check:8] Return("PJSIP/800-00000023", "") in new stack
-- Executing [MyNumber@from-internal:3] ExecIf("PJSIP/800-00000023", "0 ?Set(CDR(accountcode)=)") in new stack
-- Executing [MyNumber@from-internal:4] Set("PJSIP/800-00000023", "ROUTE_CIDSAVE="800" <800>") in new stack
-- Executing [MyNumber@from-internal:5] Set("PJSIP/800-00000023", "MOHCLASS=default") in new stack
-- Executing [MyNumber@from-internal:6] Set("PJSIP/800-00000023", "_NODEST=") in new stack
-- Executing [MyNumber@from-internal:7] Macro("PJSIP/800-00000023", "dialout-trunk,2,MyNumber,,off") in new stack
-- Executing [s@macro-dialout-trunk:1] Set("PJSIP/800-00000023", "DIAL_TRUNK=2") in new stack
-- Executing [s@macro-dialout-trunk:2] GosubIf("PJSIP/800-00000023", "0?sub-pincheck,s,1()") in new stack
-- Executing [s@macro-dialout-trunk:3] GotoIf("PJSIP/800-00000023", "0?disabletrunk,1") in new stack
-- Executing [s@macro-dialout-trunk:4] Set("PJSIP/800-00000023", "DIAL_NUMBER=MyNumber") in new stack
-- Executing [s@macro-dialout-trunk:5] Set("PJSIP/800-00000023", "DIAL_TRUNK_OPTIONS=Ttr") in new stack
-- Executing [s@macro-dialout-trunk:6] Set("PJSIP/800-00000023", "OUTBOUND_GROUP=OUT_2") in new stack
-- Executing [s@macro-dialout-trunk:7] GotoIf("PJSIP/800-00000023", "1?nomax") in new stack
-- Goto (macro-dialout-trunk,s,9)
-- Executing [s@macro-dialout-trunk:9] GotoIf("PJSIP/800-00000023", "0?skipoutcid") in new stack
-- Executing [s@macro-dialout-trunk:10] Set("PJSIP/800-00000023", "DIAL_TRUNK_OPTIONS=Tt") in new stack
-- Executing [s@macro-dialout-trunk:11] Macro("PJSIP/800-00000023", "outbound-callerid,2") in new stack
-- Executing [s@macro-outbound-callerid:1] ExecIf("PJSIP/800-00000023", "0?Set(CALLERPRES()=)") in new stack
-- Executing [s@macro-outbound-callerid:2] ExecIf("PJSIP/800-00000023", "0?Set(REALCALLERIDNUM=800)") in new stack
-- Executing [s@macro-outbound-callerid:3] GotoIf("PJSIP/800-00000023", "1?normcid") in new stack
-- Goto (macro-outbound-callerid,s,6)
-- Executing [s@macro-outbound-callerid:6] Set("PJSIP/800-00000023", "USEROUTCID=OutboundCID") in new stack
-- Executing [s@macro-outbound-callerid:7] Set("PJSIP/800-00000023", "EMERGENCYCID=") in new stack
-- Executing [s@macro-outbound-callerid:8] Set("PJSIP/800-00000023", "TRUNKOUTCID=") in new stack
-- Executing [s@macro-outbound-callerid:9] GotoIf("PJSIP/800-00000023", "1?trunkcid") in new stack
-- Goto (macro-outbound-callerid,s,14)
-- Executing [s@macro-outbound-callerid:14] ExecIf("PJSIP/800-00000023", "0?Set(CALLERID(all)=)") in new stack
-- Executing [s@macro-outbound-callerid:15] ExecIf("PJSIP/800-00000023", "1?Set(CALLERID(all)=OutboundCID)") in new stack
-- Executing [s@macro-outbound-callerid:16] ExecIf("PJSIP/800-00000023", "0?Set(CALLERID(all)=)") in new stack
-- Executing [s@macro-outbound-callerid:17] ExecIf("PJSIP/800-00000023", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack
-- Executing [s@macro-outbound-callerid:18] Set("PJSIP/800-00000023", "CDR(outbound_cnum)=OutboundCID") in new stack
-- Executing [s@macro-outbound-callerid:19] Set("PJSIP/800-00000023", "CDR(outbound_cnam)=") in new stack
[2015-07-13 07:49:19] WARNING[28882]: func_cdr.c:351 cdr_write_callback: CDR requires a value (CDR(variable)=value)
-- Executing [s@macro-dialout-trunk:12] GosubIf("PJSIP/800-00000023", "0?sub-flp-2,s,1()") in new stack
-- Executing [s@macro-dialout-trunk:13] Set("PJSIP/800-00000023", "OUTNUM=MyNumber") in new stack
-- Executing [s@macro-dialout-trunk:14] Set("PJSIP/800-00000023", "custom=DAHDI/r0") in new stack
-- Executing [s@macro-dialout-trunk:15] ExecIf("PJSIP/800-00000023", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)Tt)") in new stack
-- Executing [s@macro-dialout-trunk:16] ExecIf("PJSIP/800-00000023", "0?Set(DIAL_TRUNK_OPTIONS=TtM(confirm))") in new stack
-- Executing [s@macro-dialout-trunk:17] Macro("PJSIP/800-00000023", "dialout-trunk-predial-hook,") in new stack
-- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("PJSIP/800-00000023", "") in new stack
-- Executing [s@macro-dialout-trunk:18] GotoIf("PJSIP/800-00000023", "0?bypass,1") in new stack
-- Executing [s@macro-dialout-trunk:19] ExecIf("PJSIP/800-00000023", "1?Set(CONNECTEDLINE(name,i)=CID:OutboundCID)") in new stack
-- Executing [s@macro-dialout-trunk:20] GotoIf("PJSIP/800-00000023", "0?customtrunk") in new stack
-- Executing [s@macro-dialout-trunk:21] Dial("PJSIP/800-00000023", "DAHDI/r0/MyNumber,300,Tt") in new stack
-- Requested transfer capability: 0x00 - SPEECH
-- Called DAHDI/r0/MyNumber
-- Moving call (DAHDI/i1/MyNumber-2d9d) from channel 27 to 25.
-- DAHDI/i1/MyNumber-2d9d is proceeding passing it to PJSIP/800-00000023
-- DAHDI/i1/MyNumber-2d9d is ringing
-- DAHDI/i1/MyNumber-2d9d is making progress passing it to PJSIP/800-00000023
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039504, ts 000160, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039505, ts 000320, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039506, ts 000480, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039507, ts 000640, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039508, ts 000800, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039509, ts 000960, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039510, ts 001120, len 000160)
> 0x7522dd98 -- Probation passed - setting RTP source address to 100.100.100.215:11794
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000000, ts 2527472030, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039511, ts 001280, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000001, ts 2527472190, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039512, ts 001440, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000002, ts 2527472350, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039513, ts 001600, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000003, ts 2527472510, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039514, ts 001760, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000004, ts 2527472670, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039515, ts 001920, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000005, ts 2527472830, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039516, ts 002080, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000006, ts 2527472990, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039517, ts 002240, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000007, ts 2527473150, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039518, ts 002400, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000008, ts 2527473310, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039519, ts 002560, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000009, ts 2527473470, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039520, ts 002720, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000010, ts 2527473630, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039521, ts 002880, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000011, ts 2527473790, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039522, ts 003040, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000012, ts 2527473950, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039523, ts 003200, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000013, ts 2527474110, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039524, ts 003360, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000014, ts 2527474270, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039525, ts 003520, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000015, ts 2527474430, len 000160)
-- DAHDI/i1/MyNumber-2d9d answered PJSIP/800-00000023
-- Channel PJSIP/800-00000023 joined 'simple_bridge' basic-bridge <cf7c4ae4-19b8-45a1-92ac-13de2d1fcd7b>
-- Channel DAHDI/i1/MyNumber-2d9d joined 'simple_bridge' basic-bridge <cf7c4ae4-19b8-45a1-92ac-13de2d1fcd7b>
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000286, ts 2527517790, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039797, ts 047040, len 000160)
Got RTP packet from 100.100.100.215:11794 (type 00, seq 000287, ts 2527517950, len 000160)
Sent RTP packet to 100.100.100.215:11794 (type 08, seq 039798, ts 047200, len 000160)
-- Channel PJSIP/800-00000023 left 'simple_bridge' basic-bridge <cf7c4ae4-19b8-45a1-92ac-13de2d1fcd7b>
-- Channel DAHDI/i1/MyNumber-2d9d left 'simple_bridge' basic-bridge <cf7c4ae4-19b8-45a1-92ac-13de2d1fcd7b>
== Spawn extension (macro-dialout-trunk, s, 21) exited non-zero on 'PJSIP/800-00000023' in macro 'dialout-trunk'
-- Hungup 'DAHDI/i1/MyNumber-2d9d'
== Spawn extension (from-internal, MyNumber, 7) exited non-zero on 'PJSIP/800-00000023'
-- Executing [h@from-internal:1] Hangup("PJSIP/800-00000023", "") in new stack
== Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/800-00000023'
谢谢你的帮助!
在[channels]
下的chan_dahdi.conf
中需要nat=yes
。