2011-03-22 38 views
3

我使用Microsoft統一通信和c#開發軟件。我使用IMVoipSample作爲代碼庫。作爲voip後端,我使用了星號。一切都很好,我可以註冊,打電話,接受/拒絕來電。有一件事我無法解決。sip「100試」而不是「180響」

,我給到第三方軟件電話的呼叫沒有從它的答案:

SIP/2.0 180 Ringing 
Via: SIP/2.0/UDP 192.168.250.29:5060;branch=z9hG4bK786d156c;rport=5060 
Contact: <sip:[email protected]:45134;rinstance=7af05ded7e7e49e6> 
To: <sip:[email protected]:45134;rinstance=7af05ded7e7e49e6>;tag=9a00d038 
From: "6012"<sip:[email protected]>;tag=as66995cd4 
Call-ID: [email protected] 
CSeq: 102 INVITE 
User-Agent: X-Lite release 1002tx stamp 29712 
Content-Length: 0 

但是,當我打電話給我的IMVoipSample電話那邊是一個aswer:

SIP/2.0 100 Trying 
Via: SIP/2.0/UDP 192.168.246.203:45134;branch=z9hG4bK-d87543-71570d1c6127bc7a-1--d87543-;received=192.168.246.203;rport=45134 
From: "6011"<sip:[email protected]>;tag=18345648 
To: "6012"<sip:[email protected]> 
Call-ID: fd7f305d6520cd53YjQ2ZDJmMDAwZDE0YmUwMjRlMGFmM2NmODg5OGM1ODQ. 
CSeq: 2 INVITE 
Server: Asterisk PBX 1.6.2.9-2 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO 
Supported: replaces, timer 
Contact: <sip:[email protected]> 
Content-Length: 0 

我有一個三星officeserv pbx,它連接到星號,我可以打電話給軟電話和副verca。但是打電話給軟電話和我的IMVoipSample電話的音頻差異是沒有正常的連接蜂鳴聲,只有沉默。我想這是因爲「嘗試100」而不是 「180 rinning」。 所以問題是: 我是否需要在客戶端設置額外的振鈴信號?

+0

有趣的詳細說明。第三方軟電話_和_IMVoipSample_是否在同一臺機器上運行,使用相同的帳戶?只是好奇。沒有180 Ringing,星號將不會繼續。嘗試使用'sip.conf'中的'progressinband'參數來查看它的工作原理。 – 2011-03-22 08:16:05

+0

是的,他們在同一臺機器上工作,另外一臺機器上有兩臺第三方軟電話用於測試目的。他們也使用不同的帳戶。我也嘗試玩progressinband參數。這對我無關緊要。 – 2011-03-22 08:56:54

回答

8

1xx響應是信息響應,在100 Trying的情況下是可選的。 SIP用戶代理服務器(UAS)通常會在收到INVITE請求時立即響應100 Trying響應,以使用戶代理客戶端(UAC)知道他們正在處理請求並避免重新發送。過了一段時間後,他們將採用100響鈴或183會話進度來響應100 Trying響應。一旦某人或某事迴應了這個呼叫,就需要發送一個2xx響應,通常爲200OK。

如果您的軟件電話軟件僅生成100 Trying響應,而不是隨後的180響鈴響應,那麼我的猜測是您錯過了一個步驟。至少如果軟電話有問題並且由於沒有響鈴而不能產生振鈴響應,它應該產生4xx錯誤響應。

+0

「180 Ringing」只是一個標題?它需要真正的嘟嘟聲嗎? – 2011-03-22 05:38:55

+0

180振鈴是響應狀態碼。對於SIP響應是強制性的,但不是標題。至於嗶嗶聲,SIP層無法生成它們。在180響應的情況下,接收它的設備負責生成進度音調。在183會話進程響應的情況下,被叫設備使用想要播放的任何音頻來發送早期媒體RTP流給主叫設備以指示進度。 – sipwiz 2011-03-22 09:28:04

0

好吧,我解決我的問題,通過explitic在星號

exten => _6.,1,Ringing 
exten => _6.,n,Dial(SIP/${EXTEN:0}). 

但@sipwiz的sip.conf加入了鈴聲的問題的根源

+0

$ {EXTEN:0}與$ {EXTEN}相同。您也應該小心使用該方法,因爲無論被叫設備如何響應,您都會收到響鈴指示。例如,如果被叫設備不可到達或脫機,則主叫方仍將得到錯誤的振鈴指示。一般建議不要在Asterisk上使用人爲振鈴指示。 – sipwiz 2011-03-22 09:31:25

+0

恩,謝謝指點$ {EXTEN},我不知道。我打了一個電話,沒有登錄的應用程序,並有「SIP/2.0 503服務不可用」。所以它看起來沒問題 – 2011-03-22 09:40:19