[[Category:人々]]
VLANとかQoSとか、IP電話の重要キーワードとは言っても、ルーターが
%PQUICC_ETHER-3-UNDERFLO: Unit 0, underflow error
%PQUICC_ETHER-3-UNDERFLO: Unit 0, underflow error
%PQUICC_ETHER-3-UNDERFLO: Unit 0, underflow error
と言って息切れするまでは設定しないで置こうかな~と思っている今日この頃。<BR>
今日もageますぜ。旦那。
=ミスプリ用紙の裏=
==Astlinux0.6.1を入れてみた2を入れてみた==
*Asterisk1.4.21.2が入っている
*Linux 2.6.20.21のカーネルが入っているっぽい
#使ってる人が少ない。
#sccp.confの記述方法が変(コンテキスト毎に分けられていない)
#Astlinux0.6.2には、chan_sccpが入っていない
chan_sccpは、個人的見解としては「あまりいけてない」<BR>
とはいえ、chan_skinnyよりはマシな気が。<BR>
SIPに対応していない電話機(WiFiなCisco電話機とか)を動かすなら、chan_sccp必須ですヨ!奥さん!
==CMEとAsteriskの相互発着信==
Asterisk1.2からCMEに発信しようとしたら、CME側が文句を言ってきた<BR>
Asterisk側の設定はextensions.confの一行だけ(sip.confには何も入れていない)
exten => _55X,1,Dial(SIP/${EXTEN}@192.168.0.249,60)
CME側のlogを見てみる。
CME曰く「FROM:行が変だぞコノヤロー」
SIP/2.0 400 Bad Request - 'Malformed/Missing FROM: field'
Via: SIP/2.0/UDP (グローバルIPアドレス):0;branch=z9hG4bK1abea658;rport
From: "asterisk" <sip:asterisk@(グローバルIPアドレス):0>;tag=as511b728a
To: <sip:550@192.168.5.10:5060>;tag=883F10-2158
Date: Sat, 01 Nov 2008 15:21:46 GMT
Call-ID: 1fb2a3191d071543574506cf2d550708@(グローバルIPアドレス)
Server: Cisco-SIPGateway/IOS-12.x
CSeq: 102 OPTIONS
Content-Length: 0
Fromの個所がアルファベットだからか?と思ってexten見直してみた。
; Cisco CME
;exten => _55X,1,Dial(SIP/${EXTEN}@192.168.0.249,60)
exten => _55X,1,Set(CALLERID(Name)=${CALLERID})
exten => _55X,n,Set(CALLERID(Number)=${CALLERIDNUM})
exten => _55X,n,Dial(SIP/${EXTEN}@192.168.0.249,60)
またしてもCMEが文句垂れ<BR>
CME曰く「Contactの辺りが変だぞコノヤロー」
SIP/2.0 400 Bad Request - 'Malformed/Missing Contact field'
Via: SIP/2.0/UDP (IPアドレス):0;branch=z9hG4bK6ca0fc21
From: "201" <sip:201@(IPアドレス):0>;tag=as3a116378
To: <sip:551@192.168.5.10:5060>;tag=90AFAC-E45
Call-ID: 6da12851151f75fb320ce9cc2f2565e7@(IPアドレス)
CSeq: 102 INVITE
Reason: Q.850;cause=100
Content-Length: 0
もうちょっとCME側のログを掘り下げてみたら、タイムゾーンを素敵に間違えている事が判明した。
Nov 1 15:53:01.081: //-1/xxxxxxxxxxxx/SIP/Transport/sipSPIUpdateResponseInfo: Dialog Transaction Address (IPアドレス),Port 0, Transport 1, SentBy Port 0
Nov 1 15:53:01.081: //-1/xxxxxxxxxxxx/SIP/Transport/sipSPIUpdateResponseInfo: Dialog Transaction Address (IPアドレス),Port 5060, Transport 1, SentBy Port 5060
ぐぐってみたら、「ダブルコーテーションが妖しい」らしい。<BR>
そういえば、「ダブルコーテーション」が1.2と1.4で扱いが変わったとか変わってないとか、何処かに情報あったような<BR>
無かったような。<BR>
一つほど思い当たるフシがあったので、Asterisk1.2(Astlinux)ではなく、別機器のAsterisk1.4からCMEに対して発信(Invite)してみた。<BR>
Asterisk1.4側の設定は、先ほどと同じくextensions.confの一行だけ(sip.confには何も入れていない)
exten => _55X,1,Dial(SIP/${EXTEN}@192.168.0.249,60)
するとあら不思議。余裕で相互発着信できちゃってるとか、どんだけ~<BR>
===正常通話の時のInvite===
INVITE sip:550@192.168.0.249 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.5:5060;branch=z9hG4bK0b60a5c5;rport
From: "201" <sip:201@192.168.0.5>;tag=as28b7c407
To: <sip:550@192.168.0.249>
Contact: <sip:201@192.168.0.5>
Call-ID: 0c90cab870d1cf1b1db9972b0696aafc@192.168.0.5
CSeq: 102 INVITE
User-Agent: Asterisk PBX
Max-Forwards: 70
Date: Sat, 01 Nov 2008 16:49:15 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: 262
v=0
o=root 92779 92779 IN IP4 192.168.0.5
s=session
c=IN IP4 192.168.0.5
t=0 0
m=audio 16660 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv
===通話不可の時のInvite===
INVITE sip:551@192.168.0.249 SIP/2.0
Via: SIP/2.0/UDP (グローバルIP):0;branch=z9hG4bK45bd0345
From: "501" <sip:501@(グローバルIP):0>;tag=as1f1353f6
To: <sip:551@192.168.0.249>
Contact: <sip:501@(グローバルIP):0>
Call-ID: 1b7282fe6791a79a2c6d803e5d58731f@(グローバルIP)
CSeq: 102 INVITE
User-Agent: Asterisk PBX
Max-Forwards: 70
Date: Sat, 01 Nov 2008 16:52:19 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Content-Type: application/sdp
Content-Length: 242
v=0
o=root 15992 15992 IN IP4 (グローバルIP)
s=session
c=IN IP4 (グローバルIP)
t=0 0
m=audio 18298 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
From行のダブルコーテーションに関しては関係しなさそう。<BR>
Contact行の":0"となってる個所が違っているため、1.2と1.4で違いが出てくるかもしれない。<BR>
==E-Phone設定に矛盾を生じさせてみる試み==
===始めの疑問===
ラインキー1に、DN2(ephone-dn 2)が割り当てられているという設定内容。
ephone-dn 1 dual-line
number 2001
label 2001
name 2001
!
!
!
ephone 1
mac-address 001E.FFFF.FFFF
type 7960
button 1:2
ラインキー1番目にDN(e-phone-dn2)を入れているが、e-phone-dn2が無い場合の処理はどうなるのだろうか
===再現実験===
予め、下記のような設定を投入しておく
ephone-dn 1 dual-line
number 550
!
!
ephone-dn 2 dual-line
number 551
!
!
ephone 1
mac-address 0011.FFFF.FFFF
button 1:2
ここで ephone-dn 2を抹消させてみる。ephone1には、存在しないはずのephone-dn 2が登録されている<BR>
という流れになるはず。
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no ephone-dn 2
Router#show config
(略)
ephone-dn 1 dual-line
number 550 no-reg primary
!
!
ephone 1
mac-address 0011.FFFF.FFFF
ephone-dn 2を抹消させたら、ラインキーからもephone-dn 2の個所が消されていた。<BR>
自動的に消去された模様。IOSのバージョン違いによるものだろうか。
==WirelessIP 5000==
ftp://ftp.cisco.com/pub/voice/ip-phone/sip-7960/ 7960のSIPファームウェア<BR>
CP-7960GとCP-7961Gを混同していた時期もありました。
===着信音ネタ(鳴り分け)===
Asterisk側で着信音を鳴り分けできるらしい。<BR>
Asterisk側にて、ダイヤルする前に"ALERT_INFO"をSIP inviteに引っ付けて電話機に送り込むと、指定した着信音が鳴るらしい<BR>
ただし、
Note that this only seems to work for the internal ringtones and not for any custom ringtones.
↑このように内線着信で、なおかつカスタマイズした着信音だと使えない(らしい)<BR>
本当に動くんだろうかと。(例によって未検証)
Asterisk version <1
exten => 3010,1,SetVar(__ALERT_INFO=<Bellcore-dr1>)
Assterisk 1.0 and 1.2
exten => 3010,1,SetVar(_ALERT_INFO=<Bellcore-dr1>)
Asterisk 1.4
exten => 3010,1,SIPAddHeader(Alert-Info: <Bellcore-dr1>)
====LOGげっちゅ====
最近の、CiscoのIP電話はHTTPを喋るので、http://192.168.0.66 (←電話機のIPアドレス)<BR>
とやると、設定内容やらDEBUG logやらが表示されるので便利<BR>
LOGから「Unknown」とか「Error」あたりで調べると、コンフィグの書き間違いを探すことができる。
XML Parser Warning: Unknown element 'uid' in element '/device/networkLocaleInfo' (line=67)
この時ばかりは「とりあえず、テキストファイルで出力してしまえ」というInternet Explorerを使ったほうが良い<BR>
標準設定なFirefoxの場合「得体の知れないファイルだけど、どうよ?」と 聞いてくるのでチョット面倒
====壁紙設定====
===Cisco 7961G(SIP)===
====設定ファイル(SIP用)====
[http://www.ekn.com/makecnf.tar.gz SIP用cnfファイルジェネレータ]←動作未検証
====ソフトキー設定====
SEP<MAC Address>.cnf.xml中の<BR>