2014-04-17 1 views
1

별표 11을 사용하고 있습니다. 전화를 걸 때 채널 이름을 가져 오는 데 문제가 있습니다. 일반적으로 수신자가 전화를받을 때 채널 이름을 알 수 있습니다. 하지만 지금은 전화를 걸면 바로 채널 이름을 얻고 싶습니다. 채널 이름이라고별표의 채널 이름

Called SIP/[email protected] 
- SIP/64.195.139.88-00000001 is ringing 
-- SIP/64.195.139.88-00000001 is making progress passing it to SIP/8001-00000000 

내가 아는 : 나는이 같은 화면에 볼 수있는 "SIP/64.195.139.88-00000001" 하지만 코딩 또는에서 그것을 얻을하는 방법을 모른다 다른 방법들. 도와주세요. 대단히 감사합니다!

답변

0

당신은 dialplan을에

이유를 아웃 바운드 채널의 채널 이름을 얻을 수 없습니다 : 그것은하지 그 순간에 아직 만들었습니다.

하지만 변수 BRDIGEDPEERNAME 또는 listnen 이벤트를 확인하여 외부 응용 프로그램에서 가져올 수 있습니다.

은 또한 당신은 당신은 호출 채널에 Pre-Dial Handler를 사용하여 별표 11에서 아웃 바운드 채널의 이름을 얻을 수 있습니다 cmd_dial 내부 매크로 (M의 PARAM)

+0

Arheops, M 옵션이있는 cmd 다이얼은 수신자가 응답 한 후에 만 ​​채널 이름을 얻습니다. 외부 응용 프로그램을 사용하여 BRDIGEDPEERNAME 변수 또는 수신 대기열에서 채널 이름을 가져 오는 방법을 보여 주시겠습니까? 고맙습니다! –

+0

아니요, 앱을 개발하는 방법을 "보여줄"수 없습니다. AMI/events, ringing event를 참조하십시오. – arheops

+0

도움을 주셔서 대단히 감사합니다. 나는 포기한다! !! –

1

에서 두 채널 모두를 얻을 수 있습니다. 실제로 전화 동작을 수행하는 어떤 채널 반대로

[default]  
exten => pre_dial_handler,1,NoOp() 
same => n,Verbose(1, Channel is ${CHANNEL}) 
same => n,Return() 

exten => dial_example,1,NoOp() 
same => n,Dial(SIP/alice,,b(default^pre_dial_handler^1) 

은 채널 SIP/앨리스 XXXXXXXX에 pre_dial_handler 서브 루틴을 실행한다. 서브 루틴은 생성 후 즉시 호출 시도와 같은 임의의 작업이 수행되기 전에 아웃 바운드 채널에서 실행됩니다.

관련 문제