Cisco 7970 IP with Magic Jack

Having issues with your magicJack? Post here, and we'll try to help you out!

Moderators: Bill Smith, Pilot

Post Reply
picabotwo
magicJack Apprentice
Posts: 16
Joined: Wed Feb 04, 2009 7:54 pm

Cisco 7970 IP with Magic Jack

Post by picabotwo »

I have successfully loaded my Cisco 7970 with SIP70.8-2-1S. Everything seems to work fine. The phone registers and I can make outgoing calls, conference calls etc. But I cannot receive incoming calls at all. When the person calls they just get a busy signal. I have forwarded ports 5060, 5070, tcp and udp to the phone. Any ideas?

I can post my cnf.xml if needed.

Thanks!

Josh
mberlant
Dan Should Pay Me
Posts: 829
Joined: Sun Feb 01, 2009 7:47 pm
Location: Japan

Post by mberlant »

There's something missing in your description of your symptoms.

MJ will never return a Busy Signal to the calling party. MJ will always divert unsuccessful inbound calls to your MJ voice mail. If the calling party is receiving a busy signal, either the call is failing to reach MJ or your Cisco is returning the Busy Signal.

What happens when you plug the actual MJ dongle into your PC and try to use the service that way?

And, what prompted you to open inbound ports in your router? Your chances of truly needing to do that are well under 1% and shrinking fast.
picabotwo
magicJack Apprentice
Posts: 16
Joined: Wed Feb 04, 2009 7:54 pm

Post by picabotwo »

I was not sure incoming calls were being correctly routed to the Cisco phone. I was basically searching for what ports magic jack needed to have open to work. I do not currently have a house phone to check the magic jack with yet.

It seems to register to the magic jack service and stay registered. I can call out and even conference call just fine. Not sure how to debug incoming calls.

Thanks
picabotwo
magicJack Apprentice
Posts: 16
Joined: Wed Feb 04, 2009 7:54 pm

Post by picabotwo »

I disabled SIP ALG setting from my router and now when I call my number it goes straight to Voicemail.
mberlant
Dan Should Pay Me
Posts: 829
Joined: Sun Feb 01, 2009 7:47 pm
Location: Japan

Post by mberlant »

picabotwo wrote:I was not sure incoming calls were being correctly routed to the Cisco phone. I was basically searching for what ports magic jack needed to have open to work.
As with other client services on the LAN side of your NAT router, nothing comes inbound unless it is invited. Unless, of course, open ports and allow uninvited packets in. An incoming call is not uninvited, in this respect. Your SIP client Registers with MJ's SIP server about every 14.5 minutes if it is configured properly. This action establishes the "invitation" for MJ to "reply" to when they need to deliver an incoming call to you.

Your new symptoms, now that you have gotten ALG out of the way (current ALG implementations are notorious for not playing well with SIP), indicate that the problem is inside your Cisco. While I can, and will, offer two suggestions here, nothing will substitute for you finding a telephone instrument to use with your MJ.

The first thing to look at is the SIP Registration retry timer. Since MJ expects this every 870 seconds, I recommend you set your Cisco for 840 seconds. In the not so rare event that your Cisco doesn't properly receive the 870 second instruction in the Register OK packet, it failsafes to using its own internal timer. The name for this timer varies from maker to maker, but it usually comes from the factory set to the unreasonably long timeout of 3600 seconds, one full hour. If you leave it set to 3600 you will definitely not receive any calls during the latter 45 minutes of every hour.

The other thing to look at is your STUN configuration. Make sure your STUN functionality is pointed to a reliable server (stun.fwdnet.fwd works well for me) and that it refreshes itself about once every 200 seconds.

Good luck.
picabotwo
magicJack Apprentice
Posts: 16
Joined: Wed Feb 04, 2009 7:54 pm

Post by picabotwo »

Well I am seeing some weird consistancies. After rebooting the phone I could not connect to the magicjack server without ALG selected. Once I selected ALG and rebooted I could connect fine, but not get the voicemail when calling. Using a landline phone is fine.

From cisco CLI:
001193D875A5> show register

001193D875A5>
LINE REGISTRATION TABLE
Proxy Registration: ENABLED, state: REGISTERED
line APR state timer expires proxy:port
---- --- ------------- ---------- ---------- ----------------------------
1 .11 REGISTERED 835 365 67.90.177.70:5070
2 ... NONE 0 0 undefined:0
3 ... NONE 0 0 undefined:0
4 ... NONE 0 0 undefined:0
5 ... NONE 0 0 undefined:0
6 ... NONE 0 0 undefined:0
7 ... NONE 0 0 undefined:0
8 ... NONE 0 0 undefined:0
1-BU .1x IDLE 0 0 undefined:0

Note: APR is Authenticated, Provisioned, Registered

Sometimes it shows athenticated sometimes it does not.
I am not sure how to setup stun server.
I have also tried enabling and disabling NAT in the sep.cnf.xml

Thanks!

Josh
mberlant
Dan Should Pay Me
Posts: 829
Joined: Sun Feb 01, 2009 7:47 pm
Location: Japan

Post by mberlant »

You'll need to read your Cisco Owner's Manual to learn how to set up STUN inside the Cisco. STUN is the protocol that allows the client device to feed both the public (WAN) and private (LAN) network information to the SIP server, so that the SIP server can feed you incoming calls successfully.

As I said before, ALG implementations in today's routers corrupt the very SIP packets they think they are fixing. That could be why you don't see the Authenticated bit light up, which would likely be what is preventing incoming calls. ALG is screwing up your environment in two ways. First, it is improperly mangling the incoming packets, preventing your Cisco phone from properly authenticating with MJ's SIP server. Second, by accepting the Incoming Call packet in order to munge it for onward processing, MJ's SIP server is "told" that the call will be further handled by the client, so please don't divert this "successful" call to voice mail.

There is one more thing you can do as an experiment before you perform the experiment of using the real MJ, as I recommended earlier. Put your Cisco in the router's DMZ and see if it works there. If it does, then the programming you have done already is correct and you just need to figure out the STUN element in order to bring your Cisco back behind the firewall.
picabotwo
magicJack Apprentice
Posts: 16
Joined: Wed Feb 04, 2009 7:54 pm

Post by picabotwo »

Well it does not look like the Cisco 7970 supports stun. At least in the version of firmware I am using. I have tried three different firmwares so far. In the other post under hacks I was looking for valid config files to verify which version of firmware worked for them.

I can configure NAT options in the XML config, but since I am not running an Asterisk server I am not sure how to check if it properly nating.

I am unable to get it back to where I was getting voicemail.
I have not seen any posts where people have gotten the cisco phones to sucessfully connect to a VOIP service without using some PBX software first.

Thanks!
mberlant
Dan Should Pay Me
Posts: 829
Joined: Sun Feb 01, 2009 7:47 pm
Location: Japan

Post by mberlant »

The easy part first - you won't get back to voice mail until you disable ALG again. As long as your router keeps telling MJ's server, "I've got it!", MJ will never divert to voice mail.

Next, what happened when you put the Cisco in your router's DMZ?

Third, have you been able to try out your actual MJ dongle yet?
picabotwo
magicJack Apprentice
Posts: 16
Joined: Wed Feb 04, 2009 7:54 pm

Post by picabotwo »

Regular handsets work just fine. I can send and receive calls.

I have tried putting my IP phone in the DMZ but does not seem to do anything.

I will try disabling ALG but when I do the Cisco IP phone never gets fully registered.

I have seen one post where I person sucessfully got his cisco phone to NAT correctly but that person was using a cisco 1911 router that handled the weird way the 7970 does nating.

Thanks!
mberlant
Dan Should Pay Me
Posts: 829
Joined: Sun Feb 01, 2009 7:47 pm
Location: Japan

Post by mberlant »

These recommendations are not mix-and-match.

You must disable ALG in order to get your router to stop mangling the packets exchanged between you and MJ's server.

Independent of that, you should try putting the Cisco in the router's DMZ to see if the problem is in the Cisco's NAT management (STUN, or equivalent) or if the problem is in the Cisco's basic programming or compatibility with MJ service.

If the Cisco does not work when in the DMZ with ALG disabled, then you must plug your magicJack dongle into your PC to see if that works. If the MJ dongle in your PC does not work, that is the problem you must fix before trying your Cisco again. After all, you will do nothing more than lose sleep if you try substituting a Cisco into a non-working MJ environment.
gumby357
magicJack Apprentice
Posts: 25
Joined: Mon Dec 29, 2008 10:45 am

Re: Cisco 7970 IP with Magic Jack

Post by gumby357 »

picabotwo wrote:I have successfully loaded my Cisco 7970 with SIP70.8-2-1S. Everything seems to work fine. The phone registers and I can make outgoing calls, conference calls etc. But I cannot receive incoming calls at all. When the person calls they just get a busy signal. I have forwarded ports 5060, 5070, tcp and udp to the phone. Any ideas?

I can post my cnf.xml if needed.

Thanks!

Josh
Josh can you post your cnf file I am tryiing the same with 7941 & 7961
Will let you know what I find.
picabotwo
magicJack Apprentice
Posts: 16
Joined: Wed Feb 04, 2009 7:54 pm

Post by picabotwo »

This is my working config. Works with outgoing Magic Jack code.
Unfortuntely my cisco phone is sick and having firmware problems.

<device xsi:type="axl:XIPPhone" ctiid="203849429" uuid="{96f8508b-10ef-f98c-d20d-0471777ec725}">
<deviceProtocol>SIP</deviceProtocol>
<sshUserId>user</sshUserId>
<sshPassword>pass</sshPassword>

<devicePool>

<dateTimeSetting>
<dateTemplate>M-D-Ya</dateTemplate>
<!-- For Time Zone Names see Further Down In This Doc -->
<timeZone>Eastern Standard/Daylight Time</timeZone>
<ntps>
<ntp>
<!-- CHANGEME -->
<name>206.246.118.250</name>
<ntpMode>Unicast</ntpMode>
</ntp>
<ntp>
<!-- CHANGEME -->
<name>129.6.15.28</name>
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>

<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>5070</sipPort>
<securedSipPort>5071</securedSipPort>
</ports>
<!-- CHANGEME -->
<processNodeName>proxy1.washington.talk4free.com</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>

</devicePool>



<sipProfile>


<natEnabled>1</natEnabled>
<natAddress></natAddress>
<natReceivedProcessing>true</natReceivedProcessing>

<sipProxies>
<backupProxy></backupProxy>
<backupProxyPort></backupProxyPort>
<emergencyProxy></emergencyProxy>
<emergencyProxyPort></emergencyProxyPort>
<outboundProxy></outboundProxy>
<outboundProxyPort></outboundProxyPort>
<registerWithProxy>true</registerWithProxy>
</sipProxies>

<sipCallFeatures>
<cnfJoinEnabled>true</cnfJoinEnabled>
<callForwardURI>x--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>
</sipCallFeatures>

<sipStack>
<sipInviteRetx>6</sipInviteRetx>
<sipRetx>10</sipRetx>
<timerInviteExpires>20</timerInviteExpires>
<timerRegisterExpires>840</timerRegisterExpires>
<timerRegisterDelta>5</timerRegisterDelta>
<timerKeepAliveExpires>50</timerKeepAliveExpires>
<timerSubscribeExpires>50</timerSubscribeExpires>
<timerSubscribeDelta>5</timerSubscribeDelta>
<timerT1>500</timerT1>
<timerT2>4000</timerT2>
<maxRedirects>70</maxRedirects>
<remotePartyID>false</remotePartyID>
<userInfo>None</userInfo>
</sipStack>

<preferredCodec>g729a</preferredCodec>
<dtmfAvtPayload>101</dtmfAvtPayload>
<dtmfDbLevel>3</dtmfDbLevel>
<dtmfOutofBand>avt</dtmfOutofBand>
<alwaysUsePrimeLine>false</alwaysUsePrimeLine>
<alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
<kpml>3</kpml>


<!-- CHANGEME -->
<phoneLabel>Magic Hack</phoneLabel>

<callStats>false</callStats>
<silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
<disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>

<startMediaPort>16384</startMediaPort>
<stopMediaPort>32766</stopMediaPort>

<sipLines>

<line button="1">
<featureID>9</featureID>
<!-- CHANGEME -->
<featureLabel>703-xxx-xxxx</featureLabel>
<proxy>67.90.177.70</proxy>
<port>5070</port>
<!-- CHANGEME -->
<name>E****************</name>
<!-- CHANGEME -->
<displayName>Josh</displayName>
<autoAnswer>
<autoAnswerEnabled>2</autoAnswerEnabled>
</autoAnswer>
<callWaiting>3</callWaiting>
<!-- CHANGEME -->
<authName>E**************</authName>
<!-- CHANGEME -->
<authPassword>U****************</authPassword>
<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>3</messageWaitingLampPolicy>
<messagesNumber></messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<contact>7b452e87-4496-4762-e11f-b26751a1884b</contact>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>false</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
</line>

<!-- to add more lines to the phone duplicate the line config above -->
<!-- and change line number from 1 to 2 and so on -->

</sipLines>

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

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

<loadInformation>SIP70.8-2-1S</loadInformation>

<vendorConfig>
<disableSpeaker>false</disableSpeaker>
<disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
<pcPort>0</pcPort>
<settingsAccess>1</settingsAccess>
<garp>0</garp>
<voiceVlanAccess>0</voiceVlanAccess>
<videoCapability>0</videoCapability>
<autoSelectLineEnable>0</autoSelectLineEnable>
<webAccess>1</webAccess>
<daysDisplayNotActive>1,7</daysDisplayNotActive>
<displayOnTime>08:00</displayOnTime>
<displayOnDuration>10:30</displayOnDuration>
<displayIdleTimeout>01:00</displayIdleTimeout>
<spanToPCPort>1</spanToPCPort>
</vendorConfig>

<versionStamp>1136931633-57191cee-5ffc-4342-b286-4246b4991890</versionStamp>

<userLocale>
<name>English_United_States</name>
<uid>1</uid>
<langCode>en_US</langCode>
<version>1.0.0.0-1</version>
<winCharSet>iso-8859-1</winCharSet>
</userLocale>

<networkLocale>United_States</networkLocale>
<networkLocaleInfo>
<name>United_States</name>
<uid>64</uid>
<version>1.0.0.0-1</version>
</networkLocaleInfo>
<deviceSecurityMode>1</deviceSecurityMode>
<idleTimeout>0</idleTimeout>
<authenticationURL></authenticationURL>
<directoryURL></directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<proxyServerURL></proxyServerURL>
<servicesURL>http://phone-xml.berbee.com/menu.xml</servicesURL>
<dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
<dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
<dscpForCm2Dvce>96</dscpForCm2Dvce>
<transportLayerProtocol>4</transportLayerProtocol>
<capfAuthMode>0</capfAuthMode>

<capfList>
<capf>
<phonePort>3804</phonePort>
</capf>
</capfList>

<certHash></certHash>
<encrConfig>false</encrConfig>
</device>
mberlant
Dan Should Pay Me
Posts: 829
Joined: Sun Feb 01, 2009 7:47 pm
Location: Japan

Post by mberlant »

I am no expert with Cisco IP phones, but here is what jumps out at me:

- If your external address is stable, put it into <natAddress>. Even if it isn't, it is most likely safe. This may be a suitable substitute for the Cisco's lack of a STUN client, which should help you receive calls.
- Put MJ's proxy name and Port number 5070 into all of the appropriate fields in <sipProxies>. I believe that you definitely need <outboundProxy>, and Cisco may use the others.
- Change <preferredCodec> from g729a to whatever Cisco wants for G.711μ. G.729 may work with some incoming or outgoing calls, but G.711 will work for every call.
- Change <stopMediaPort> from 32766 to something 30000 or less; I suggest 16482. Do this one later, after you have achieved basic success.
- In the <line button="1"> section, change <port> from 5070 to 5060. I believe that this server is listening on 5060, but the other one is listening on 5070, which you have already set.

That's all that attracts my attention from a SIP point of view. The other settings look fine to me, especially that you have already set <timerRegisterExpires> to 840.

I can't truly say which combination of changes might help you to success. Just make sure that ALG is shut off in your router.
gumby357
magicJack Apprentice
Posts: 25
Joined: Mon Dec 29, 2008 10:45 am

Post by gumby357 »

[quote="mberlant"]I am no expert with Cisco IP phones, but here is what jumps out at me:

- If your external address is stable, put it into <natAddress>. Even if it isn't, it is most likely safe. This may be a suitable substitute for the Cisco's lack of a STUN client, which should help you receive calls.
- Put MJ's proxy name and Port number 5070 into all of the appropriate fields in <sipProxies>. I believe that you definitely need <outboundProxy>, and Cisco may use the others.
- Change <preferredCodec> from g729a to whatever Cisco wants for G.711μ. G.729 may work with some incoming or outgoing calls, but G.711 will work for every call.
- Change <stopMediaPort> from 32766 to something 30000 or less; I suggest 16482. Do this one later, after you have achieved basic success.
- In the <line button="1"> section, change <port> from 5070 to 5060. I believe that this server is listening on 5060, but the other one is listening on 5070, which you have already set.

That's all that attracts my attention from a SIP point of view. The other settings look fine to me, especially that you have already set <timerRegisterExpires> to 840.

I can't truly say which combination of changes might help you to success. Just make sure that ALG is shut off in your router.[/quote

I know that from playing arround witht he CODECs that G729 is spotty at best I have G729 perfered and 711U as secondary about half of the calls will work only at G711.
gumby357
magicJack Apprentice
Posts: 25
Joined: Mon Dec 29, 2008 10:45 am

Will try

Post by gumby357 »

picabotwo

I wil try this also I have only 7961 and 41 in my home lab.
I will see if I can get it working and compare configs.
Mat be a few days
picabotwo
magicJack Apprentice
Posts: 16
Joined: Wed Feb 04, 2009 7:54 pm

Post by picabotwo »

Thanks, that sounds great. I got my phone back up in working. Is there any benefit to getting a newer firmware to work? I had 8.0.2sr1 working fine, but I would like to get something newer.

Thanks!

Josh
picabotwo
magicJack Apprentice
Posts: 16
Joined: Wed Feb 04, 2009 7:54 pm

Post by picabotwo »

I am unable to get the phone to register when I have anything in the outbound proxy. I have tried both 5070, and 5060 in the outbound and line 1 ports. I assume there is no different outbound proxy then what the line 1 proxy is?

Thanks
mberlant
Dan Should Pay Me
Posts: 829
Joined: Sun Feb 01, 2009 7:47 pm
Location: Japan

Post by mberlant »

Let's see what Gumby comes up with.
gumby357
magicJack Apprentice
Posts: 25
Joined: Mon Dec 29, 2008 10:45 am

sorry

Post by gumby357 »

mberlant wrote:Let's see what Gumby comes up with.
I have had no time this week probably won't untill next week some time.
sorry
picabotwo
magicJack Apprentice
Posts: 16
Joined: Wed Feb 04, 2009 7:54 pm

Post by picabotwo »

Thanks, No rush. I enjoy the free outgoing calls right now. Just let me know if you come up with anything.

Thanks!
Post Reply