2014-04-16 2 views
4

별표는 인스턴트 메시지를 지원합니까? 나는 IM (from this example)에 대한 별표를 구성하려고하지만 다른 SIP 계정 별표에 IM을 보내려고 할 때하는 경고를 반환 한 : 별표 인스턴트 메시징을 구성하는 방법

WARNING[20128]: chan_sip.c:16379 receive_message: Received message to sip:[email protected] from sip:[email protected]; tag=d9fdcc28313946c5a2a6ae1eae997c62, dropped it... Content-Type:text/plain Message: hahaha

이 추가적으로 SIP 클라이언트가 메시지 "허용되지 않는 방법"을 반환합니다. 이것은 내 sip.conf 파일입니다

[general] 
context=internal 
allowguest=no 
allowoverlap=no 
bindport=5060 
bindaddr=0.0.0.0 
srvlookup=no 
disallow=all 
allow=ulaw 
alwaysauthreject=yes 
canreinvite=no 
nat=yes 
session-timers=refuse 
localnet=192.168.21.153/255.255.255.0 
accept_outofcall_message=yes 
outofcall_message_context=internal 

[test1] 
type=friend 
host=dynamic 
secret=test1 
context=internal 

[test2] 
type=friend 
host=dynamic 
secret=test2 
context=internal 

[test3] 
type=friend 
host=dynamic 
secret=test3 
context=internal 

그리고 이것은 내 extensions.conf 파일입니다 :

[internal] 
exten => test1,1,Answer() 
exten => test1,2,Dial(SIP/test1,60) 
exten => test1,3,Playback(vm-nobodyavail) 
exten => test1,4,VoiceMail([email protected]) 
exten => test1,5,Hangup() 

exten => test2,1,Answer() 
exten => test2,2,Dial(SIP/test2,60) 
exten => test2,3,Playback(vm-nobodyavail) 
exten => test2,4,VoiceMail([email protected]) 
exten => test2,5,Hangup() 

exten => test3,1,Answer() 
exten => test3,2,Dial(SIP/test3,60) 
exten => test3,3,Playback(vm-nobodyavail) 
exten => test3,4,VoiceMail([email protected]) 
exten => test3,5,Hangup() 

exten => 8001,1,VoicemailMain([email protected]) 
exten => 8001,2,Hangup() 

exten => 8002,1,VoicemailMain([email protected]) 
exten => 8002,2,Hangup() 

exten => 8003,1,VoicemailMain([email protected]) 
exten => 8003,2,Hangup() 

exten => _.,1,NoOp(SMS receiving dialplan invoked) 
exten => _.,n,NoOp(To ${MESSAGE(to)}) 
exten => _.,n,NoOp(From ${MESSAGE(from)}) 
exten => _.,n,NoOp(Body ${MESSAGE(body)}) 
exten => _.,n,Set(ACTUALTO=${CUT(MESSAGE(to),@,1)}) 
exten => _.,n,MessageSend(${ACTUALTO},${MESSAGE(from)}) 
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS}) 
exten => _.,n,GotoIf($["${MESSAGE_SEND_STATUS}" != "SUCCESS"]? 
sendfailedmsg) 
exten => _.,n,Hangup() 
exten => h,1,Hangup() 
; 
; Handle failed messaging 
exten => _.,n(sendfailedmsg),Set(MESSAGE(body)="[${STRFTIME(${EPOCH},, 
%d%m%Y-%H:%M:%S)}] Your message to ${EXTEN} has failed. Retry later.") 
exten => _.,n,Set(ME_1=${CUT(MESSAGE(from),<,2)}) 
exten => _.,n,Set(ACTUALFROM=${CUT(ME_1,@,1)}) 
exten => _.,n,MessageSend(${ACTUALFROM},ServiceCenter) 
exten => _.,n,Hangup() 
exten => h,1,Hangup() 

답변

8

예. 별표가 IM을 지원합니다. 별표 11 이상의 버전을 사용하십시오. 나는 당신이 구버전을 사용하고 있다고 생각한다. 나는 별표 -10에서 같은 문제를 겪었다. 나는 Asterisk-11로 Asterisk로 업그레이드했다. 아래를 참조하십시오.

sip.conf 파일의 일반 섹션에 아래 줄을 작성하십시오.

[general] 

accept_outofcall_message=yes 
outofcall_message_context=dialplan_name 
auth_message_requests=yes 

아래 라인을 extensions.conf 파일에 씁니다. 이것은 IM을 보내려면 dialplan입니다.

[dialplan_name] 
exten => _.,1,NoOp(SMS receiving dialplan invoked) 
exten => _.,n,NoOp(To ${MESSAGE(to)}) 
exten => _.,n,NoOp(From ${MESSAGE(from)}) 
exten => _.,n,NoOp(Body ${MESSAGE(body)}) 
exten => _.,n,AGI(chatplan.php,${MESSAGE(from)}) 
;exten => _.,n,Set(ACTUALTO=${CUT(MESSAGE(to),@,1)}) 
;exten => _.,n,ExecIf($["${ACTUALTO}" != "sip:${EXTEN}"]?Set(ACTUALTO=sip:${EXTEN})) 
exten => _.,n,MessageSend(${ACTUALTOS},${MESSAGE(from)}) 
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS}) 
exten => _.,n,GotoIf($["${MESSAGE_SEND_STATUS}" != "SUCCESS"]?sendfailedmsg) 
exten => _.,n,Hangup() 
; 
; Handle failed messaging 
exten => _.,n(sendfailedmsg),NoOp(Sending error to user) 
exten => _.,n,Set(SRC=${MESSAGE(from)}) 
exten => _.,n,Set(DST=${MESSAGE(to)}) 
exten => _.,n,Set(MSG=${MESSAGE(body)}) 
exten => _.,n,Set(MESSAGE(body)="[${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)}] Your message to ${EXTEN} has failed. Sending when available") 
exten => _.,n,Set(ME_1=${CUT(MESSAGE(from),<,2)}) 
exten => _.,n,Set(ACTUALFROM=${CUT(ME_1,@,1)}) 
exten => _.,n,MessageSend(${ACTUALFROM},ServiceCenter) 
exten => _.,n,GotoIf($["${INQUEUE}" != "1"]?startq) 
exten => _.,n,Hangup() 
; 
exten => _.,n(startq),NoOp(Queueing messaging for offline) 
exten => _.,n,Set(MSGTIME=${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)}) 
exten => _.,n,SYSTEM(/var/lib/asterisk/agi-bin/astqueue.sh –SRC ‘${SRC}’ –DST ‘${DST}’ –MSG ‘${MSG}’) 
exten => _.,n,Hangup()[app-fakeanswer] 
exten => _.,1,NoCDR 
exten => _.,n,Set(DESTDEV=${EXTEN}) 
exten => _.,n,Set(THISDEVSTATE=${DEVICE_STATE(SIP/${DESTDEV})}) 
exten => _.,n,GotoIf($["${THISDEVSTATE}" = "UNAVAILABLE"]?hang) 
exten => _.,n,GotoIf($["${THISDEVSTATE}" = "UNKNOWN"]?hang) 
exten => _.,n,Answer 
exten => _.,n,Hangup() 
exten => _.,n(hang),Hangup() 

위의 내용을 존중하는 파일에 추가하십시오. 메신저에는 Asterisk-11을 사용하십시오. 이전 별표 버전에서도 동일한 문제가있었습니다. 희망 당신은 별표 11을 사용하고 있습니다.

+0

감사합니다. 별표 버전의 문제가 있습니다. –

+0

@kaushik parmar, chatplan.php 파일의 위치를 ​​알려주시겠습니까? 또는 개인 코드 인 경우 공유 할 수 있습니까? 감사! – longwalker