分類

Slideshow

Get the Flash Player to see the slideshow.

彙整

近期迴響

Asterisk 或 PBX 相關

Communication Softwares

Hi-Fi 天地

HTML 資訊

Learning

Linux

Project Management

Who am I

健康百科

技術相關

時人時事

經常收看

誠意推介

金錢世界

雜七雜八

Site search

 

九月 2009
« 八月   十月 »
 12345
6789101112
13141516171819
20212223242526
27282930  

標籤

近期文章

測試:Cisco Unified 3951 SIP Phone 和 Asterisk 1.6.x 的結合

Cisco Unified 3951 SIP Phone (http://www.cisco.com/web/CN/products/products_netsol/voices/products/3951/index.html) 是一只平價(以 Cisco 的牌子,500 - 600 元的確超值,但只限在中國國內銷售,而香港沒有得賣,可惜),而支持 SIP Protocol (RFC 3261, 3311, 3264 SDP, 3515 SIP Resister/Redirect Service) Hard Phone。因為她是以 Standard SIP Protocol 為基礎,所以搭配 Asterisk IP PABX 應該沒有問題。剛剛今年新年過後,有一位朋友找我幫手,拜託我幫忙測試 Cisco 3951 如何怎樣連接 Asterisk。測試結果是成功的。

注意,這是一個測試性質,如果要 Production 的話,發生問題的後果請自行負責。

其實設定方式和在 voip-info.org所看到關於 Cisco 7960 的方式是一模一樣。 首先要預備 3951 Firmware,設定 TFTP Server Asterisk 中,而要注意是所有 configuration files 已經用了 XML 格式。3951 Firmware 是需要經由 Cisco web site 下載 ,你需要一個 authorized account 才可以得到這 Firmware

1, 下載後,解壓後你會得到以下的檔案(version number 可能會不一樣):

BOOT3951.0-0-0-9.zz

DSP3951.0-0-0-2.zz

SIP3951.8-1-2-11.zz

SIP3951.8-1-3.loads

把這些檔案存放到 tftpboot 中。

2,  設定 XMLDefault.cnf.xml。注意,processNodeName Asterisk IP Address

<Default>

<callManagerGroup>

<members>

<member priority=”0″>

<callManager>

<ports>

<ethernetPhonePort>2000</ethernetPhonePort>

</ports>

<processNodeName>128.128.0.254</processNodeName>

</callManager>

</member>

</members>

</callManagerGroup>

<loadInformation1 model=”Cisco 3951″>SIP3951.8-1-3</loadInformation1>

</Default>

3, 設定 SEPXXXXXXX.cnf.xml。那些 XXXXXXX 是某一個 Cisco IP Phone 的 MAC Address。例如我的 3951 的 MAC Address 是:000B9BFFE659,那麼這個檔案的名字是:SEP000B9BFFE659.cnf.xml。注意,Call Manager IP Address Asterisk IP Address。即是,如果你有三台Cisco IP Phone,你需要預備三個 SEP XML。如此類推。


<?xml version=”1.0″ encoding=”UTF-8″?>
<device  xsi:type=”axl:XIPPhone” ctiid=”94″>

<fullConfig>true</fullConfig>
<deviceProtocol>SIP</deviceProtocol>
<sshUserId>admin</sshUserId>
<sshPassword>cisco</sshPassword>

<devicePool>
<dateTimeSetting>
<dateTemplate>Y-M-D</dateTemplate>
<timeZone>Eastern Standard/Daylight Time</timeZone>
<ntps>
<ntp>
<name>stdtime.gov.hk</name>
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>

<callManagerGroup>
<members> <member priority=”0″> <callManager>
<name>128.128.0.254</name>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>5060</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>128.128.0.254</processNodeName>
</callManager> </member> </members>
</callManagerGroup>

<srstInfo>
<srstOption>Disable</srstOption>
<ipAddr1></ipAddr1> <port1>2000</port1>
<ipAddr2></ipAddr2> <port2>2000</port2>
<ipAddr3></ipAddr3> <port3>2000</port3>
<sipIpAddr1>128.128.0.254</sipIpAddr1> <sipPort1>5060</sipPort1>
<sipIpAddr2></sipIpAddr2> <sipPort2>5060</sipPort2>
<sipIpAddr3></sipIpAddr3> <sipPort3>5060</sipPort3>
<isSecure>false</isSecure>
</srstInfo>

<connectionMonitorDuration>120</connectionMonitorDuration>
</devicePool>

<sipProfile>
<sipProxies>
<backupProxy></backupProxy> <backupProxyPort></backupProxyPort>
<emergencyProxy></emergencyProxy> <emergencyProxyPort></emergencyProxyPort>
<outboundProxy></outboundProxy> <outboundProxyPort></outboundProxyPort>
<registerWithProxy>true</registerWithProxy>
</sipProxies>
<sipCallFeatures>
<cnfJoinEnabled>true</cnfJoinEnabled>
<callForwardURI>x-cisco-serviceuri-cfwdall</callForwardURI>
<callPickupURI>x-cisco-serviceuri-pickup</callPickupURI>
<callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI>
<callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI>
<meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI>
<abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI>
<rfc2543Hold>false</rfc2543Hold>
<callHoldRingback>2</callHoldRingback>
<localCfwdEnable>true</localCfwdEnable>
<semiAttendedTransfer>true</semiAttendedTransfer>
<anonymousCallBlock>2</anonymousCallBlock>
<callerIdBlocking>2</callerIdBlocking>
<dndControl>0</dndControl>
<remoteCcEnable>true</remoteCcEnable>
<retainForwardInformation>false</retainForwardInformation>
</sipCallFeatures>
<sipStack>
<sipInviteRetx>6</sipInviteRetx>
<sipRetx>10</sipRetx>
<timerInviteExpires>180</timerInviteExpires>
<timerRegisterExpires>3600</timerRegisterExpires>
<timerRegisterDelta>5</timerRegisterDelta>
<timerKeepAliveExpires>120</timerKeepAliveExpires>
<timerSubscribeExpires>120</timerSubscribeExpires>
<timerSubscribeDelta>5</timerSubscribeDelta>
<timerT1>500</timerT1>
<timerT2>4000</timerT2>
<maxRedirects>70</maxRedirects>
<remotePartyID>true</remotePartyID>
<userInfo>None</userInfo>
</sipStack>

<autoAnswerTimer>1</autoAnswerTimer>
<autoAnswerAltBehavior>false</autoAnswerAltBehavior>
<autoAnswerOverride>true</autoAnswerOverride>
<transferOnhookEnabled>false</transferOnhookEnabled>
<enableVad>false</enableVad>
<preferredCodec>none</preferredCodec>
<dtmfAvtPayload>101</dtmfAvtPayload>
<dtmfDbLevel>3</dtmfDbLevel>
<!– ??? –>
<dtmfOutofBand>avt</dtmfOutofBand>
<kpml>3</kpml>
<alwaysUsePrimeLine>false</alwaysUsePrimeLine>
<alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
<phoneLabel></phoneLabel>
<stutterMsgWaiting>2</stutterMsgWaiting>
<callStats>true</callStats>
<offhookToFirstDigitTimer>15000</offhookToFirstDigitTimer>
<silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
<disableLocalSpeedDialConfig>true</disableLocalSpeedDialConfig>
<poundEndOfDial>false</poundEndOfDial>
<startMediaPort>16384</startMediaPort>
<stopMediaPort>32766</stopMediaPort>

<sipLines>
<line  button=”1″ lineIndex=”1″>
<featureID>9</featureID>
<proxy>128.128.0.254</proxy>
<port>5060</port>
<autoAnswer> <autoAnswerEnabled>2</autoAnswerEnabled> </autoAnswer>
<callWaiting>3</callWaiting>

<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>3</messageWaitingLampPolicy>
<messagesNumber></messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>false</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
<!– ***************************** –>
<featureLabel>Feature</featureLabel>
<displayName>Dennis</displayName>
<name>111</name>
<authName>111</authName>
<authPassword>111</authPassword>
</line>
</sipLines>
<externalNumberMask>000</externalNumberMask>
<!– ***************************** –>

<voipControlPort>5060</voipControlPort>
<dscpForAudio>184</dscpForAudio>
<ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
<dialTemplate>dialplan.xml</dialTemplate>
</sipProfile>

<commonProfile>
<phonePassword></phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>

<loadInformation>SIP3951-8-1-3</loadInformation>

<vendorConfig>
<disableSpeaker>false</disableSpeaker>
<disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
<forwardingDelay>1</forwardingDelay>
<pcPort>0</pcPort>
<settingsAccess>1</settingsAccess>
<garp>0</garp>
<voiceVlanAccess>0</voiceVlanAccess>
<videoCapability>0</videoCapability>
<autoSelectLineEnable>1</autoSelectLineEnable>
<webAccess>0</webAccess>
<daysDisplayNotActive>1,7</daysDisplayNotActive>
<displayOnTime>09:00</displayOnTime>
<displayOnDuration>12:00</displayOnDuration>
<displayIdleTimeout>01:00</displayIdleTimeout>
<spanToPCPort>1</spanToPCPort>
<loggingDisplay>2</loggingDisplay>
<loadServer>128.128.0.254</loadServer>
<recordingTone>0</recordingTone>
<recordingToneLocalVolume>100</recordingToneLocalVolume>
<recordingToneRemoteVolume>50</recordingToneRemoteVolume>
<recordingToneDuration></recordingToneDuration>
<displayOnWhenIncomingCall>0</displayOnWhenIncomingCall>
<rtcp>0</rtcp>
<moreKeyReversionTimer>5</moreKeyReversionTimer>
<autoCallSelect>1</autoCallSelect>
<logServer>128.128.0.254</logServer>
<g722CodecSupport>0</g722CodecSupport>
<headsetWidebandUIControl>0</headsetWidebandUIControl>
<handsetWidebandUIControl>0</handsetWidebandUIControl>
<headsetWidebandEnable>0</headsetWidebandEnable>
<handsetWidebandEnable>0</handsetWidebandEnable>
<peerFirmwareSharing>0</peerFirmwareSharing>
<enableCdpSwPort>1</enableCdpSwPort>
<enableCdpPcPort>1</enableCdpPcPort>
</vendorConfig>

<versionStamp>1200501729-ee9247c4-1a10-481c-8fdc-612737c5aadd</versionStamp>

<userLocale>
<name>English_United_States</name>
<langCode>en_US</langCode>
<version></version>
<winCharSet>utf-8</winCharSet>
</userLocale>

<networkLocale>United_States</networkLocale>
<networkLocaleInfo>
<name>United_States</name>
<version></version>
</networkLocaleInfo>

<deviceSecurityMode>1</deviceSecurityMode>
<idleTimeout>0</idleTimeout>
<authenticationURL>http://128.128.0.254/ccmcip/authenticate.jsp</authenticationURL>
<directoryURL>http://128.128.0.254/ccmcip/xmldirectory.jsp</directoryURL>
<idleURL></idleURL>
<informationURL>http://128.128.0.254/ccmcip/GetTelecasterHelpText.jsp</informationURL>
<messagesURL></messagesURL>
<proxyServerURL></proxyServerURL>
<servicesURL>http://128.128.0.254/ccmcip/getservicesmenu.jsp</servicesURL>
<dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
<dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
<dscpForCm2Dvce>96</dscpForCm2Dvce>
<transportLayerProtocol>4</transportLayerProtocol>
<singleButtonBarge>0</singleButtonBarge>

<capfAuthMode>0</capfAuthMode>
<capfList> <capf>
<phonePort>3804</phonePort>
<processNodeName>128.128.0.254</processNodeName>
</capf> </capfList>

<certHash></certHash>
<encrConfig>false</encrConfig>
<advertiseG722Codec>1</advertiseG722Codec>

</device>

設定 Dialplan.xml

<DIALTEMPLATE>
<TEMPLATE MATCH=”*” Timeout=”15″/>
<DIALTEMPLATE>

把這些 XML 檔案放在 tftpboot 內。然後設定 3951 的 Call Manager IP為 Asterisk 的 IP Address。

我的 Asterisk 的SIP.conf 如下:

;Cisco
[111]
type=friend
context=inbound
secret=111
;allow=g729
host=dynamic
canreinvite=no
defaultip=128.128.0.249

Comments

Comment from Randy To
Time 2009 年 10 月 14 日 at 00:36:41

I can’t login Asterisk server when use 8.1(4a), can you help me. Thanks!

Comment from wudennis
Time 2009 年 10 月 15 日 at 20:48:20

唔知幫唔幫到你喎。因為部 3951 已經物歸原主了。

Comment from Frank Yau
Time 2009 年 12 月 22 日 at 04:19:54

Do you have voice from both sides?

Comment from wudennis
Time 2009 年 12 月 22 日 at 23:12:35

To Frank,
Yes.

Comment from Frank Yau
Time 2009 年 12 月 24 日 at 22:01:52

If I can get one, can you help to set it up with a fee?

Comment from wudennis
Time 2009 年 12 月 25 日 at 22:39:34

It’s not a matter of fee. Do u have a license of Cisco 3951 firmware? If not, we cannot to help you to setup it.

Comment from Frank Yau
Time 2009 年 12 月 28 日 at 16:36:12

Yes, I do. How to start? Thx in advance.

Comment from Frank Yau
Time 2009 年 12 月 31 日 at 16:12:13

Hi,

How to contact you ?

Comment from wudennis
Time 2010 年 01 月 04 日 at 09:06:50

Please send email to us for discussion. Thanks.

Comment from wudennis
Time 2010 年 01 月 04 日 at 09:15:51

dennis@denniswuworks.com

Write a comment