2014-05-20 19 views
1

별표 1.4.21.2를 사용할 수 없습니다. (편집 : 제쳐두고, 제 생각으로는 별표를 uClinux의 1.4 버전으로 업그레이드 할 수는 없을 것이라고 생각하지만 누군가가 방법을 알고 있다면 관심을 가질 것입니다. 그러나 문제는 없다고 생각합니다. 버전 별)별표는 모든 호출 중에 DTMF를 무시합니다. ATCOM IP01의 uClinux에서는 키 누르기 기능

features.conf의 기능 맵은 다음과 같지만 통화 중에 키를 누르면 아무 효과가 없습니다. 사용

IP0x*CLI> feature show channels 
No feature channels in use 

IP0x*CLI> feature show 
Builtin Feature   Default Current 
---------------   ------- ------- 
Pickup     *8  *8 
Blind Transfer   #  *# 
Attended Transfer     *0 
One Touch Monitor 
Disconnect Call   *  ***0 
Park Call 

Dynamic Feature   Default Current 
---------------   ------- ------- 
(none) 

Call parking 
------------ 
Parking extension : 700 
Parking context  : parkedcalls 
Parked call extensions: 701-750 

다양한 다른 전화 (GRANDSTREAM BT-200, 파나소닉 KX-TGP500, X-라이트 4)하지만, 항상 같은 :

[featuremap] 
blindxfer => *#   ; Blind transfer (default is #) 
disconnect => ***0    ; Disconnect (default is *) 
;automon => *1     ; One Touch Record a.k.a. Touch Monitor 
atxfer => *0     ; Attended transfer 
;parkcall => #72    ; Park call (one step parking) 

CLI는 구성 featuremap이 적용했음을 보여줍니다 문제. 모든 전화는 Asterisk의 기본 DTMF 모드 인 rfc2833을 사용하도록 구성됩니다. 또한 sip.conf에서 dtmfmode = rfc2833을 명시 적으로 설정하려고 시도했습니다.

통화 도중에 키를 누르지 않으면 별표 (Asterisk)에서 응답을받지 못합니다. *# 키는 전화가 아닌 경우 (다이얼 플랜 또는 음성 메일 중에) 항상 Asterisk에서 인식합니다.

full => verbose,debug,dtmf 또는 full => verbose,error,warning,dtmf을 사용하여 DTMF 로깅을 켜면 통화 중에 수많은 키를 누르지 만 DTMF 항목이 로그에 표시되지 않습니다.

무엇이 문제 일 수 있습니까?


EDIT : dialplan에서 사용되는 Dial 명령을 보여주는 추가 정보가 이제옵니다.

편집 : 해당 매크로를 사용하지 않고서도 문제가 계속 발생했다는 것을 알게되었습니다. 단순히 extensions.conf에 exten=261,1,Dial(SIP/261)이 있어야합니다. 그래서 나는 그것을 해소하기위한 질문에서 ael을 제거했습니다.

이제 sip.conf에 canreinvite = norelaxdtmf=yes을 추가하려고 시도했지만 문제가 남아 있습니다.

또한 지금 (내가 전에 시도 SIP 채널과 반대로) DTMF 로깅 ZAP 채널에서 통화 중에 발생 않는 것으로 나타났습니다. 그러나 DTMF는 여전히 기능을 트리거하지 않습니다. 예제 DTMF 로그가 이어집니다.

[May 22 08:25:46] DTMF[474]: channel.c:2191 __ast_read: DTMF begin '*' received on SIP/251-01354004 
[May 22 08:25:46] DTMF[474]: channel.c:2201 __ast_read: DTMF begin passthrough '*' on SIP/251-01354004 
[May 22 08:25:46] DTMF[474]: channel.c:2116 __ast_read: DTMF end '*' received on SIP/251-01354004, duration 180 ms 
[May 22 08:25:46] DTMF[474]: channel.c:2163 __ast_read: DTMF end accepted with begin '*' on SIP/251-01354004 
[May 22 08:25:46] DTMF[474]: channel.c:2179 __ast_read: DTMF end passthrough '*' on SIP/251-01354004 
[May 22 08:25:46] DTMF[474]: channel.c:2191 __ast_read: DTMF begin '*' received on SIP/251-01354004 
[May 22 08:25:46] DTMF[474]: channel.c:2201 __ast_read: DTMF begin passthrough '*' on SIP/251-01354004 
[May 22 08:25:46] DTMF[474]: channel.c:2116 __ast_read: DTMF end '*' received on SIP/251-01354004, duration 160 ms 
[May 22 08:25:46] DTMF[474]: channel.c:2163 __ast_read: DTMF end accepted with begin '*' on SIP/251-01354004 
[May 22 08:25:46] DTMF[474]: channel.c:2179 __ast_read: DTMF end passthrough '*' on SIP/251-01354004 
[May 22 08:25:46] DTMF[474]: channel.c:2191 __ast_read: DTMF begin '*' received on SIP/251-01354004 
[May 22 08:25:46] DTMF[474]: channel.c:2201 __ast_read: DTMF begin passthrough '*' on SIP/251-01354004 
[May 22 08:25:47] DTMF[474]: channel.c:2116 __ast_read: DTMF end '*' received on SIP/251-01354004, duration 140 ms 
[May 22 08:25:47] DTMF[474]: channel.c:2163 __ast_read: DTMF end accepted with begin '*' on SIP/251-01354004 
[May 22 08:25:47] DTMF[474]: channel.c:2179 __ast_read: DTMF end passthrough '*' on SIP/251-01354004 
[May 22 08:25:47] DTMF[474]: channel.c:2191 __ast_read: DTMF begin '0' received on SIP/251-01354004 
[May 22 08:25:47] DTMF[474]: channel.c:2201 __ast_read: DTMF begin passthrough '0' on SIP/251-01354004 
[May 22 08:25:47] DTMF[474]: channel.c:2116 __ast_read: DTMF end '0' received on SIP/251-01354004, duration 280 ms 
[May 22 08:25:47] DTMF[474]: channel.c:2163 __ast_read: DTMF end accepted with begin '0' on SIP/251-01354004 
[May 22 08:25:47] DTMF[474]: channel.c:2179 __ast_read: DTMF end passthrough '0' on SIP/251-01354004 
IP0x*CLI> 
+1

dialplan에서 사용중인 Dial 명령은 무엇입니까? – moonstruck

+0

질문을 편집하여 세부 사항을 포함 시켰습니다. –

+0

질문이 업그레이드 되었습니까? 1.4는 EOL (2012 년 EOL), https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions - 비교 대상 1.4를 많이 설치하지 않았습니다. – dougBTV

답변

3

마지막으로 금이갔습니다.

canreinvite=no 설정은 Asterisk가 처음 전화를 건 후에 SIP 전화가 직접 연결을 협상하지 못하도록하므로 Asterisk가 미디어 경로에 유지되므로 (발신자가 알 수있는 DTMF를 알 수 있음) 사실입니다.

그러나 그럼에도 불구

T 및/또는 t을 통과하여 통화 당 기준으로에 실제로 눌러 DTMF에 응답 및 호출 구성된 전송 기능을 명시 적으로 전송을 사용하도록 설정해야합니다 ,,에 별표를위한 옵션을 다이얼 명령 매개 변수로 사용하십시오.features.conf

최신 버전이 관심을 끌기 :

;atxfer => *2     ; Attended transfer -- Make sure to set the T and/or t option in the Dial() or Queue() app call! 

그래서 수정은, 나는 코드가 다이얼 명령을 사용하여 어디든지 T 및/또는 t 매개 변수를 추가 내 AEL 코드를 변경해야했다.

남은 유일한 퍼즐은 참석 한 전송을 중단하는 방법이었습니다. 예를 들어 응답이 없으면 시간 초과가 될 때까지 기다리는 것이 지루해 지거나 전송이 음성 메일로 넘어 가서 잠재적으로 상대방에게 돌아 오는 것이 바람직합니다.

: 전송 관련이없는 일이지만, features.conf

;disconnect => *0    ; Disconnect (default is *) 

최신 버전은 확장 된 주석을 포함 : 실험, 나는 결국 또 전화를 끊으려면 키 누르기를 사용하는 기능은 전송을 중단하기 위해 노력 발견

;disconnect => *0    ; Disconnect (default is *) -- Make sure to set the H and/or h option in the Dial() or Queue() app call! 

내가 발견 한 바에 따르면 H 및/또는 h 매개 변수를 Dial 명령에 전달하지 않아도 연결 해제 기능을 사용하여 유인 전송을 중단 할 수 있습니다. 그리고이 사이에 충돌이없고 다이얼 명령에 H 및/또는 h 옵션을 전달합니다.이 작업을 수행하고 모든 종류의 연결 해제 기능을 사용하려면 전체 호출을 끊지 않고 전송을 중단하는 데 효과적입니다 * 이외의 값이 필요할 수 있습니다. *을 시작하는 모든 시퀀스가 ​​이제는 호출을 끊을 것입니다.).

Dial(Zap/1/${number},,T); 

그리고 모든 전송 기능은 이제 잘 작동 : 기력/1 발신 통화에 대한 내 AEL 코드

전화 접속 명령은 지금이다.