回復 34# bubblestar
As spoken, as long as use linux static build skype, it should work. No worry on the audio in and out at the skype machine because you use it remotely. Concentrate to see if audio stream working when using asterisk to dial in and out
In my set up, I use siptosis to connect 9 skype users accounts and install wine + obiapps on the same machine. No conflict seen
For dial plan,- [CallingRule_Skype]; This serve 3 skype trunks _01 _02 _03 _05 _06 _07 _08 & _09 for outgoing to other skype accounts
- exten => _83[1235679].,1,NoOp
- exten => _83[1235679].,n,Dial(SIP/stsTrunk_0${EXTEN:2:1}/${EXTEN:3})
- exten => _83[1235679].,n,Macro(stsdialresult)
- exten => _83[1235679].,n,Playback(pls-try-call-later)
- exten => _83[1235679].,n,Hangup()
複製代碼- [macro-stsdialresult]
- ; **** this is not complete - but a good start ****
- ; 603 Refused - hangup
- ; 404 Failed, Invalid user, no skype credit (Can't tell the difference) - hangup
- ; 408 UNPLACED whatever that means, try next channel
- ; 600 Busy - hangup
- ; 403 Anything else - hangup
- ;ISUP Cause value SIP response
- ; ---------------- ------------
- ; 1 unallocated number 404 Not Found
- ; 2 no route to network 404 Not found
- ; 3 no route to destination 404 Not found
- ; 16 normal call clearing --- (*)
- ; 17 user busy 486 Busy here
- ; 18 no user responding 408 Request Timeout
- ; 19 no answer from the user 480 Temporarily unavailable
- ; 20 subscriber absent 480 Temporarily unavailable
- ; 21 call rejected 403 Forbidden (+)
- ; 22 number changed (w/o diagnostic) 410 Gone
- ; 22 number changed (w/ diagnostic) 301 Moved Permanently
- ; 23 redirection to new destination 410 Gone
- ; 26 non-selected user clearing 404 Not Found (=)
- ; 27 destination out of order 502 Bad Gateway
- ; 28 address incomplete 484 Address incomplete
- ; 29 facility rejected 501 Not implemented
- ; 31 normal unspecified 480 Temporarily unavailable
- exten => s,1,NoOp(HANGUPCAUSE is ${HANGUPCAUSE} and DIALSTATUS is ${DIALSTATUS})
- exten => s,2(debug1),Verbose(1,debug1 "${HANGUPCAUSE}:${DIALSTATUS}")
- exten => s,3,Set(TIMEOUT(absolute)=120)
- exten => s,4,GotoIf($[${HANGUPCAUSE} = 0]?s,6)
- exten => s,5,Goto(cause-${HANGUPCAUSE},1)
- exten => s,6,GotoIf($[${DIALSTATUS} = NOANSWER]?cause-19,1)
- exten => s,7,GotoIf($[${DIALSTATUS} = BUSY]?cause-2,1)
- exten => s,8,GotoIf($[${DIALSTATUS} = CHANUNAVAIL]?cause-0,1)
- exten => s,9,GotoIf($[${DIALSTATUS} = ANSWER]?exit-1,1)
- exten => s,10,Goto(cause-0,1)
- exten => cause-0,1,NoOp(AST_CAUSE_NOTDEFINED)
- exten => cause-0,n,Verbose(1,debug "cause-0")
- exten => cause-0,n,Playback(error)
- ;exten => cause-0,n,Congestion
- exten => cause-0,n,Goto(exit-1,1)
- exten => cause-1,1,NoOp(AST_CAUSE_FAILURE)
- exten => cause-1,n,Verbose(1,debug "cause-1 invalid destination")
- exten => cause-1,n,Playback(invalid)
- exten => cause-1,n,Hangup
- exten => cause-2,1,NoOp(AST_CAUSE_BUSY)
- exten => cause-2,n,Verbose(1,debug "cause-2 busy")
- exten => cause-2,n,Busy
- exten => cause-3,1,NoOp(AST_CAUSE_FAILURE)
- exten => cause-3,n,Verbose(1,debug "cause-3")
- ;exten => cause-3,n,Playback(error)
- exten => cause-3,n,Goto(exit-1,1)
- exten => cause-4,1,NoOp(AST_CAUSE_CONGESTION)
- exten => cause-4,n,Verbose(1,debug "cause-4")
- exten => cause-4,n,Goto(exit-1,1)
- exten => cause-5,1,NoOp(AST_CAUSE_UNALLOCATED)
- exten => cause-5,n,Verbose(1,debug "cause-5 invalid destination")
- exten => cause-5,n,Playback(invalid)
- exten => cause-5,n,Hangup
- exten => cause-18,1,NoOp(AST_CAUSE_CALL_UNPLACED)
- exten => cause-18,n,Verbose(1,debug "cause-18 unplaced")
- exten => cause-18,n,Goto(exit-1,1)
- exten => cause-19,1,NoOp(AST_CAUSE_NO_ANSWER)
- exten => cause-19,n,Verbose(1,debug "cause-19 noanswer")
- exten => cause-19,n,Playback(noanswer)
- exten => cause-19,n,Hangup
- exten => cause-21,1,NoOp(AST_CAUSE_CALL_REJECTED)
- exten => cause-21,n,Verbose(1,debug "cause-21 rejected")
- exten => cause-21,n,Playback(rejected)
- exten => cause-21,n,Hangup
- exten => _cause-X,1,NoOp(UNKNOWN_CAUSECODE)
- exten => _cause-X,n,Verbose(1,debug "cause-X")
- exten => _cause-X,n,Playback(error)
- ;exten => _cause-X,n,Congestion
- exten => _cause-X,n,Goto(exit-1,1)
- exten => exit,1(exit),Noop
複製代碼 |