k****t 发帖数: 2288 | 1 Asterisk 1.6.2.11, Copyright (C) 1999 - 2010 Digium, Inc. and others.
虽然在dockstar上装的是1。6,但是还是按照1。4的方式,用park来拨打gv。
最近很奇怪,有些时候还没有执行到park,结果sipgate的电话就来了,导致接不到,
从而失败。
看到网上很多人都是bridge好用,于是改dialplan,结果出来的就更奇怪了:
[gv-inbound]
exten => 650xxxxxxx,1,GotoIf($[${CALLERID(num)} =$GV_NUM]?:normalcall)
exten => 650xxxxxxx,n,NoCDR()
exten => 650xxxxxxx,n,Bridge(${DB_DELETE(gv_dialout/channel)})
exten => 650xxxxxxx,n(normalcall),Goto(ext-local,100a,1)
[gv-outbound]
exten => _X.,1,NoOp()
exten => _X.,n,Set(RINGBACK=sipgate_num)
exten => _X.,n,System(gvoice -e ${ACCTNAME} -p ${ACCTPASS} call ${EXTEN} ${
RINGBACK})
exten => _X.,n,Set(DB(gv_dialout/channel)=${CHANNEL})
exten => _X.,n,Wait(20)
exten => _X.,n,Hangup
下面是log
== Using SIP RTP CoS mark 5
-- Executing [408xxxxxxx@from-internal:1] NoOp("SIP/100a-00000028", "")
in new stack
-- Executing [408xxxxxxx@from-internal:2] Set("SIP/100a-00000028", "
RINGBACK=1650xxxxxxx") in new stack
-- Executing [408xxxxxxx@from-internal:3] System("SIP/100a-00000028", "
gvoice -e @gmail.com -p pwd call 408xxxxxxx 1650xxxxxx") in new stack
-- Executing [408xxxxxxx@from-internal:4] Set("SIP/100a-00000028", "DB(
gv_dialout/channel)=SIP/100a-00000028 ") in new stack
-- Executing [408xxxxxxx@from-internal:5] Wait("SIP/100a-00000028", "20"
) in new stack
== Using SIP RTP CoS mark 5
-- Executing [650xxxxxxx@ext-did:1] GotoIf("SIP/SipGate-00000029", "1?:
normalcall") in new stack
-- Executing [650xxxxxxx@ext-did:2] NoCDR("SIP/SipGate-00000029", "") in
new stack
-- Executing [650xxxxxxx@ext-did:3] Bridge("SIP/SipGate-00000029", "SIP/
100a-00000028 ") in new stack
[2010-10-26 07:03:49] WARNING[4626]: features.c:4649 bridge_exec: Bridge
failed because channel SIP/100a-00000028 does not exists or we cannot get
its lock
-- Executing [650xxxxxxx@ext-did:4] Goto("SIP/SipGate-00000029", "ext-
local,100a,1") in new stack
-- Goto (ext-local,100a,1)
-- Executing [100a@ext-local:1] Dial("SIP/SipGate-00000029", "SIP/100a")
in new stack
== Using SIP RTP CoS mark 5
-- Called 100a
-- Got SIP response 486 "Busy Here" back from 192.168.1.138
-- SIP/100a-0000002a is busy
主要就是下面的错误信息:
bridge_exec: Bridge failed because channel SIP/100a-00000028 does not
exists or we cannot get its lock
看来真是没有办法用了,不知哪位能指点一下?
google半天,有些人遇到跟我一样的问题,但是都没有答案,只有问题。 | r****t 发帖数: 10904 | 2 这个问题(1.6 bridge 设置)是 piii 帮我找出来解决了的, 可以翻前面我的帖子。
我的从 ata 打出的 context:
[from-ata]
exten => _NXXNXXXXXX,1,Dial(Local/1${EXTEN}@outbound-gv-sipgate/n)
exten => _1NXXNXXXXXX,s,Dial(Local/${EXTEN}@outbound-gv-sipgate/n)
我的 [outbound-gv-sipgate] 类似你的 [gv-outbound],
我的 [from-sipgate] 类似你的 [gv-inbound]
这里是 log, 注意 bridge 是和 Local channel bridge
-- Executing [1xxxxxxxxxx@from-sipgate:8] Bridge("SIP/sipgate-
00000214", "Local/1123xxxxxxx@outbound-gv-sipgate-c8a3;2") in new stack
-- Local/1123xxxxxxx@outbound-gv-sipgate-c8a3;1 answered SIP/pap2-
00000213
== Spawn extension (outbound-gv-sipgate, 1123xxxxxxx, 6) exited non-
zero on 'Bridge/Local/1123xxxxxxx@outbound-gv-sipgate-c8a3;2'
== Spawn extension (from-pap2, 1123xxxxxxx, 1) exited non-zero on
'SIP/pap2-00000213'
【在 k****t 的大作中提到】 : Asterisk 1.6.2.11, Copyright (C) 1999 - 2010 Digium, Inc. and others. : 虽然在dockstar上装的是1。6,但是还是按照1。4的方式,用park来拨打gv。 : 最近很奇怪,有些时候还没有执行到park,结果sipgate的电话就来了,导致接不到, : 从而失败。 : 看到网上很多人都是bridge好用,于是改dialplan,结果出来的就更奇怪了: : [gv-inbound] : exten => 650xxxxxxx,1,GotoIf($[${CALLERID(num)} =$GV_NUM]?:normalcall) : exten => 650xxxxxxx,n,NoCDR() : exten => 650xxxxxxx,n,Bridge(${DB_DELETE(gv_dialout/channel)}) : exten => 650xxxxxxx,n(normalcall),Goto(ext-local,100a,1)
| r****t 发帖数: 10904 | 3 还有,check 这个帖子:
http://www.mitbbs.com/clubarticle_t/voip/31205491.html
http://www.mitbbs.com/clubarticle/voip/31205061_0.html
简单的说 [gv-outbound] 里面 Set DB 需要发生在 call gvoice 之前,而不是之后。
这对于 dockstar 或者是 502gu 这样的尤其重要,估计可以缩短不少等待时间。避免 gv 回拨
到了还没准备好 park/bridge 的情况。所以其实 gv 回拨是很快也很稳定的,你看都可以比你
gvoice logout 快,不知道抱怨 gv 回拨慢的人都是怎么回事。
exten => _X.,n,Set(DB(gv_dialout/channel)=${CHANNEL})
【在 k****t 的大作中提到】 : Asterisk 1.6.2.11, Copyright (C) 1999 - 2010 Digium, Inc. and others. : 虽然在dockstar上装的是1。6,但是还是按照1。4的方式,用park来拨打gv。 : 最近很奇怪,有些时候还没有执行到park,结果sipgate的电话就来了,导致接不到, : 从而失败。 : 看到网上很多人都是bridge好用,于是改dialplan,结果出来的就更奇怪了: : [gv-inbound] : exten => 650xxxxxxx,1,GotoIf($[${CALLERID(num)} =$GV_NUM]?:normalcall) : exten => 650xxxxxxx,n,NoCDR() : exten => 650xxxxxxx,n,Bridge(${DB_DELETE(gv_dialout/channel)}) : exten => 650xxxxxxx,n(normalcall),Goto(ext-local,100a,1)
| r****t 发帖数: 10904 | 4 其实最好等 1.8, 1.6 不是长期支持版,1.4 和 1.8 都是。 | a9 发帖数: 21638 | 5 gv回拨不慢。主要慢在python网页拨号上。
免 gv 回拨
都可以比你
到,
【在 r****t 的大作中提到】 : 还有,check 这个帖子: : http://www.mitbbs.com/clubarticle_t/voip/31205491.html : http://www.mitbbs.com/clubarticle/voip/31205061_0.html : 简单的说 [gv-outbound] 里面 Set DB 需要发生在 call gvoice 之前,而不是之后。 : 这对于 dockstar 或者是 502gu 这样的尤其重要,估计可以缩短不少等待时间。避免 gv 回拨 : 到了还没准备好 park/bridge 的情况。所以其实 gv 回拨是很快也很稳定的,你看都可以比你 : gvoice logout 快,不知道抱怨 gv 回拨慢的人都是怎么回事。 : exten => _X.,n,Set(DB(gv_dialout/channel)=${CHANNEL})
| k****t 发帖数: 2288 | 6 修改后,还是不work:
== Using SIP RTP CoS mark 5
-- Executing [408xxxxxxx@from-internal:1] Dial("SIP/100a-0000000c", "
Local/408xxxxxxx@gv-outbound/n") in new stack
-- Executing [408xxxxxxx@gv-outbound:1] NoOp("Local/408xxxxxxx@gv-
outbound-02a7;2", "") in new stack
-- Executing [408xxxxxxx@gv-outbound:2] Set("Local/408xxxxxxx@gv-
outbound-02a7;2", "RINGBACK=16504xxxxxxx") in new stack
-- Executing [408xxxxxxx@gv-outbound:3] Set("Local/408xxxxxxx@gv-
outbound-02a7;2", "DB(gv_dialout/channel)=Local/408xxxxxxx@gv-outbound-02a7;
2 ") in new stack
-- Executing [408xxxxxxx@gv-outbound:4] System("Local/408xxxxxxx@gv-
outbound-02a7;2", "gvoice -e @gmail.com -p pwd call 408xxxxxxx 16504xxxxxxx"
) in new stack
-- Called 408xxxxxxx@gv-outbound/n
> doing dnsmgr_lookup for 'sipgate.com'
> ast_get_srv: SRV lookup for '_sip._UDP.sipgate.com' mapped to host
sipgate.com, port 5060
-- Executing [408xxxxxxx@gv-outbound:5] Wait("Local/408xxxxxxx@gv-
outbound-02a7;2", "20") in new stack
== Using SIP RTP CoS mark 5
-- Executing [6504xxxxxxx@ext-did:1] GotoIf("SIP/SipGate-0000000d", "1?:
normalcall") in new stack
-- Executing [6504xxxxxxx@ext-did:2] NoCDR("SIP/SipGate-0000000d", "")
in new stack
-- Executing [6504xxxxxxx@ext-did:3] Bridge("SIP/SipGate-0000000d", "
Local/408xxxxxxx@gv-outbound-02a7;2 ") in new stack
[2010-10-26 15:18:52] WARNING[4779]: features.c:4649 bridge_exec: Bridge
failed because channel Local/408xxxxxxx@gv-outbound-02a7;2 does not exists
or we cannot get its lock
-- Executing [6504xxxxxxx@ext-did:4] Goto("SIP/SipGate-0000000d", "ext-
local,100a,1") in new stack
-- Goto (ext-local,100a,1)
-- Executing [100a@ext-local:1] Dial("SIP/SipGate-0000000d", "SIP/100a")
in new stack
== Using SIP RTP CoS mark 5
-- Called 100a
-- Got SIP response 486 "Busy Here" back from 192.168.1.138
-- SIP/100a-0000000e is busy
== Everyone is busy/congested at this time (1:1/0/0) | k****t 发帖数: 2288 | 7 使用bridge的时候,feature需要加东西吗?
因为使用park的话,feature里需要加上park的一些东西! | r****t 发帖数: 10904 | 8 不用动 feature。
你的 log 和我基本完全一样,看不出什么问题 :(
-- Executing [408xxxxxxx@gv-outbound:3] Set("Local/408xxxxxxx@gv-
outbound-02a7;2", "DB(gv_dialout/channel)=Local/408xxxxxxx@gv-outbound-
02a7;2 ") in new stack
-- Executing [6504xxxxxxx@ext-did:3] Bridge("SIP/SipGate-0000000d",
"Local/408xxxxxxx@gv-outbound-02a7;2 ") in new stack
这个 warning 应该是 cannot get its lock 了,要不重启 asterisk 试试, 不应该啊。
[2010-10-26 15:18:52] WARNING[4779]: features.c:4649 bridge_exec: Bridge
failed because channel Local/408xxxxxxx@gv-outbound-02a7;2 does not
exists or we cannot get its lock
bridge 之后 Hangup 了,应该不是问题所在
。。。
exten => _X.,n,Bridge(${DB_DELETE(gv_dialout/channel)})
exten => _X.,n,Hangup()
exten => _X.,n(normalcall),Goto(from-trunk,${DID_EXTEN},1)
exten => _X.,n,Hangup()
【在 k****t 的大作中提到】 : 使用bridge的时候,feature需要加东西吗? : 因为使用park的话,feature里需要加上park的一些东西!
| k****t 发帖数: 2288 | 9 哎,重启不解决问题呀,连dockstar重启都没有用~~ | a9 发帖数: 21638 | 10 感觉你这个不像是代码的问题,我拷过来用了一点问题都没有啊,呵呵。
【在 k****t 的大作中提到】 : 哎,重启不解决问题呀,连dockstar重启都没有用~~
| | | a9 发帖数: 21638 | 11 但我不知道
-- Executing [650xxxxxxx@ext-did:3] Bridge("SIP/SipGate-00000029", "SIP/
100a-00000028 ") in new stack
这个100a-00000028后面为什么有个空格啊?
【在 a9 的大作中提到】 : 感觉你这个不像是代码的问题,我拷过来用了一点问题都没有啊,呵呵。
| k****t 发帖数: 2288 | 12 嗯~~
这个确实是哦~~
今天回家好好看看,如果真是这样的话,估计得将最后的空格干掉~~
【在 a9 的大作中提到】 : 但我不知道 : -- Executing [650xxxxxxx@ext-did:3] Bridge("SIP/SipGate-00000029", "SIP/ : 100a-00000028 ") in new stack : 这个100a-00000028后面为什么有个空格啊?
| r****t 发帖数: 10904 | 13 老大慧眼啊,要是是考过来就这样,这个应该就是问题所在了。
【在 a9 的大作中提到】 : 但我不知道 : -- Executing [650xxxxxxx@ext-did:3] Bridge("SIP/SipGate-00000029", "SIP/ : 100a-00000028 ") in new stack : 这个100a-00000028后面为什么有个空格啊?
| k****t 发帖数: 2288 | 14 a9,好厉害呀~~~~
将那句话按照如下方式修改一下就OK了!!!
(就是将最后的space给删除了)
exten => 650xxxx,n,Bridge(${DB_DELETE(gv_dialout/channel):0:-1},p)
^^^^^ | r****t 发帖数: 10904 | 15 可是,为啥你的有空格 to begin with 呢?
【在 k****t 的大作中提到】 : a9,好厉害呀~~~~ : 将那句话按照如下方式修改一下就OK了!!! : (就是将最后的space给删除了) : exten => 650xxxx,n,Bridge(${DB_DELETE(gv_dialout/channel):0:-1},p) : ^^^^^
| k****t 发帖数: 2288 | 16 呵呵,我也就是在想这个问题呀~~
仔细review我的dialplan,发现问题了:
exten => _X.,n,Set(DB(gv_dialout/channel)=${CHANNEL} )
我的这句话}与)之间有个空格。
我的原来的不work,是因为没有使用local。后来用了local,结果不知道怎么回事,在
}与)之间加了一个空格。
哎~~~ |
|