Diary of technical happenstance, simple Internet accessible scratchpad, and brain dump to save myself later
Friday, November 13, 2009
T.38 Fax Relay MGCP VG224 2851 and CUCM7.1.3
Works great now.
2851 MGCP with PRI to PSTN snippet:
voice service voip
fax protocol t38 ls-redundancy 0 hs-redundancy 0 fallback cisco
!
ccm-manager fallback-mgcp
ccm-manager redundant-host 10.10.10.5
ccm-manager mgcp
ccm-manager fax protocol cisco
ccm-manager music-on-hold
ccm-manager config server 10.10.10.5
ccm-manager config
!
mgcp
mgcp call-agent 10.10.10.6 2427 service-type mgcp version 0.1
mgcp dtmf-relay voip codec all mode out-of-band
mgcp rtp unreachable timeout 1000 action notify
mgcp modem passthrough voip mode nse
mgcp package-capability rtp-package
mgcp package-capability sst-package
mgcp package-capability pre-package
mgcp default-package fxr-package
no mgcp package-capability res-package
no mgcp timer receive-rtcp
mgcp timer net-cont-test 3000
mgcp sdp simple
mgcp fax t38 ecm
no mgcp explicit hookstate
mgcp fax t38 gateway force
mgcp rtp payload-type g726r16 static
mgcp bind control source-interface GigabitEthernet0/0.10
mgcp bind media source-interface GigabitEthernet0/0.10
mgcp behavior g729-variants static-pt
!
mgcp profile default
VG224 MGCP snippet:
voice service voip
fax protocol t38 ls-redundancy 0 hs-redundancy 0 fallback cisco
!
ccm-manager redundant-host 10.10.10.5
ccm-manager mgcp
no ccm-manager fax protocol cisco
ccm-manager music-on-hold
ccm-manager config server 10.10.10.5
ccm-manager config
!
mgcp
mgcp call-agent 10.10.10.6 2427 service-type mgcp version 0.1
mgcp dtmf-relay voip codec all mode out-of-band
mgcp rtp unreachable timeout 1000 action notify
mgcp modem passthrough voip mode nse
mgcp package-capability rtp-package
mgcp package-capability sst-package
mgcp default-package fxr-package
no mgcp package-capability res-package
no mgcp timer receive-rtcp
mgcp timer net-cont-test 3000
mgcp sdp simple
mgcp fax t38 ecm
no mgcp explicit hookstate
mgcp fax t38 gateway force
mgcp rtp payload-type g726r16 static
!
mgcp profile default
!
Tuesday, September 22, 2009
Verify what MS-SQL version is running
For example, executing the following in Query Analyzer:
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
returns
| 8.00.2282 | SP4 | Standard Edition |
This reflects SQL 2000 SP4.
Thursday, August 27, 2009
Monday, August 17, 2009
Excel VBA convert character in string to position in alpahabet
This was motivated by "attitude" equalling 100, while "hard work" only equals 98.
Have fun.
Sub mySub()
myString = UCase(Range("B6").Text)
myAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
myValue = 0
For i = 0 To Len(myString) - 1myStringChar = Mid(myString, i + 1, 1)Next i
For j = 1 To 26myChar = Mid(myAlphabet, j, 1)Next j
myVal = Replace(myStringChar, myChar, j)
If IsNumeric(myVal) ThenmyValue = myValue + CInt(myVal)End If
Exit For
Range("B7").Value = myValue
End Sub
Tuesday, August 11, 2009
NETSH, DHCP and reservation options
You can use NETSH to display, add, modify and delete DHCP scopes, options, reservations and options unique to the reservations without a GUI.
The reservedoptionvalue is poorly documented but is your key. I would suggest creating a single accurate reservation via the GUI and then using NETSH dump dhcp > filename.txt to verify the command format on your server version.
For reference, or for those that don't have a server to validate against, here are some NETSH commands and associated notes:
# Add Scope 10.1.0.0 on server at 10.1.1.1
Dhcp Server 10.1.1.1 add scope 10.1.0.0 255.255.0.0 "Voice" "Voice DHCP"
Dhcp Server 10.1.1.1 Scope 10.1.0.0 set state 1
# Add IP range to the Scope 10.1.0.0 on Server 10.1.1.1
Dhcp Server 10.1.1.1 Scope 10.1.0.0 Add iprange 10.1.1.100 10.1.10.254
# Add router at 10.1.254.254 and TFTP Servers at 10.1.1.2 and 10.1.1.1 to the 10.1.0.0 scope on server 10.1.1.1
Dhcp Server 10.1.1.1 Scope 10.1.0.0 set optionvalue 3 IPADDRESS "10.1.254.254"
Dhcp Server 10.1.1.1 Scope 10.1.0.0 set optionvalue 150 IPADDRESS "10.1.1.2" "10.1.1.1"
# Add a reservation to the scope with IP 10.1.9.1 and MAC 001122334455
# Add a TFTP Servers at 10.1.1.12 and 10.1.1.11 to the 10.1.9.1 reservation
# Add a Router at 10.1.254.254 to the 10.1.9.1 reservation
Dhcp Server 10.1.1.1 Scope 10.1.0.0 Add reservedip 10.1.9.1 001122334455 "SEP001122334455" "Test" "DHCP"
Dhcp Server 10.1.1.1 Scope 10.1.0.0 set reservedoptionvalue 10.1.9.1 150 IPADDRESS "10.1.1.12" "10.180.1.11"
Dhcp Server 10.1.1.1 Scope 10.1.0.0 set reservedoptionvalue 10.1.9.1 3 IPADDRESS "10.1.254.254"
Thursday, July 23, 2009
Cisco ATA186 codecs
The problem is if you are using both analog ports and G.729, the second port is limited to using G.711.
Although this is documented in the datasheet(s), sometimes you need to learn from experience. This is an import consideration if deploying analog devices at sites served by limited bandwidth WAN links. You CAN associate new regions and device pools with only the second port to set G.711 as the codec between regions, but you need to be bandwidth cognizant.
Monday, July 20, 2009
Dialer.exe missing in Windows XP
To find it from a command line, run the following, where
expand
expand
regsvr32.exe "C:\Program Files\Windows NT\avtapi.dll"
To run the application, from the command line you can run "C:\Program Files\Windows NT\Dialer.exe"
Sunday, June 07, 2009
Visio and Fractions in Text boxes
Unfortunately, if I don't maintain some documentation on the network, it becomes counter productive to depend on it to test specific features and conditions.
So Visio is an obvious solution, but one thing bugged me. When I dropped a text field on the diagram to hold some basic interface info, like:
R1
F0/0 = 10.101.10.51 / 24
S1/0 = 192.168.1.1 / 30
S½ = 192.168.1.13/30
the IP interfaces with port numbers that can be considered a common fraction (i.e. 1/2 above) get converted to tiny little depictions of fractions. This isn't the worst thing in the world, but does get distracting on a large scale.
Visio does this by default (at least my Visio 2003 version). If you navigate to Tools | AutoCorrect Options and then to the AutoFormat As You Type tab, you'll find a check mark to convert fractions to fraction characters.
Uncheck and you're done.
Thursday, June 04, 2009
Volume Control in Windows XP
1. You can try to display it in the SysTray via the Control Panel.
You can try Control Panel | Sound and Audio Devices and click Place Volume Icon in the Task Bar. You should have the tiny speaker icon down in the bottom right corner of your screen.
2. If you find "the Volume Control program has not been installed", you can restore it from your XP installation media (or possibly from the i386 folder on your hard drive). Find the i386 folder, navigate to it via command line and type:
expand -r sndvol32.ex_ %systemroot%\system32
You can then use the Control Panel method to restore it to the SysTray.
Wednesday, May 06, 2009
VMWare DHCP on bridged networks
Per KevinG at http://communities.vmware.com/message/101202
Select "Start"->"All Programs"->"VMware"->"Manage Virtual Networks"
Click on the "Automatic Bridging" tab and uncheck "Automatically choose an available physical network adapter to bridge to VMnet0"
Click on the "Host Virtual Network Mapping" and use the dropdown menu for VMnet0 to select the physical network on the host that you want to bridge to.
I found my VMnet0 adapter bridged to a TAP-Win32 adapter, likely done so during some utility install.
Tuesday, April 21, 2009
Cisco IPPhoneDirectory Exit softkey functionality
The problem you will find is once you start paging through multiple directories, the Exit softkey will return you to the previous directory page, rather than the phone's Services menu. To make the Exit key actually exit the service you need to use a response.expires header. Below is an example of an ASP page implementing the header and presenting the XML appropriately.
### sample starts here ###
<% Response.Expires = -1 %>
<%
response.ContentType="text/xml"
response.Write("<?xml version='1.0' encoding='ISO-8859-1'?>")
response.Write("<CiscoIPPhoneDirectory>")
response.Write("<Title>Super Directory</Title>")
response.Write("<Prompt>Super Directory</Prompt>")
response.Write("<DirectoryEntry>")
response.Write("<Name>Test Local Number</Name>")
response.Write("<Telephone>95551212</Telephone>")
response.Write("</DirectoryEntry>")
response.Write("<DirectoryEntry>")
response.Write("<Name>Other Test Number</Name>")
response.Write("<Telephone>95551000</Telephone>")
response.Write("</DirectoryEntry>")
response.Write("<SoftKeyItem>")
response.Write("<Name>Dial</Name>")
response.Write("<URL>SoftKey:Dial</URL>")
response.Write("<Position>1</Position>")
response.Write("</SoftKeyItem>")
response.Write("<SoftKeyItem>")
response.Write("<Name>EditDial</Name>")
response.Write("<URL>SoftKey:EditDial</URL>")
response.Write("<Position>2</Position>")
response.Write("</SoftKeyItem>")
response.Write("<SoftKeyItem>")
response.Write("<Name>Next Page</Name>")
response.Write("<URL>http://mywebserver/CiscoIPPhoneDirectory.asp</URL>")
response.Write("<Position>3</Position>")
response.Write("</SoftKeyItem>")
response.Write("<SoftKeyItem>")
response.Write("<Name>Exit</Name>")
response.Write("<URL>SoftKey:Exit</URL>")
response.Write("<Position>4</Position>")
response.Write("</SoftKeyItem>")
response.Write("</CiscoIPPhoneDirectory>")
%>
### sample ends here ###
Monday, April 20, 2009
Cisco CiscoIPPhoneDirectory with Next key
*** XML sample starts here ***
<CiscoIPPhoneDirectory>
<Title>Special Directory</Title>
<Prompt>Special Directory</Prompt>
<DirectoryEntry>
<Name>A Sample Phone Number</Name>
<Telephone>918005551212</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Another Sample Phone Number</Name>
<Telephone>918885551212</Telephone>
</DirectoryEntry>
<SoftKeyItem>
<Name>Dial</Name>
<URL>SoftKey:Dial</URL>
<Position>1</Position>
</SoftKeyItem>
<SoftKeyItem>
<Name>EditDial</Name>
<URL>SoftKey:EditDial</URL>
<Position>2</Position>
</SoftKeyItem>
<SoftKeyItem>
<Name>Next Page</Name>
<URL>http://yourwebserver/SecondCiscoIPPhoneDirectoryPage.xml</URL>
<Position>3</Position>
</SoftKeyItem>
<SoftKeyItem>
<Name>Exit</Name>
<URL>SoftKey:Exit</URL>
<Position>4</Position>
</SoftKeyItem>
</CiscoIPPhoneDirectory>
*** XML sample ends here ***
Monday, April 06, 2009
Cisco Unity message to Verizon text tip
Recently I gave up my insanely priced Windows smartphone contract with Sprint and went to a straight voice and text package with Verizon. Now that I am lacking the ability to view my Microsoft Outlook Web Access the question is how do I know when I receive a Unity voicemail message?
I want to avoid voice message delivery since I find it both annoying and a drain on my cell minutes, but without a wireless data package I have no corporate email access. Unity now supports SMS delivery natively but is not implemented at our office. My work around is using Outlook rules.
A user can typically create rules in Outlook that allows identifying incoming messages by sender, subject line, etc. and then performing a function. I have simply created a rule to identify Unity messages by “Voice Message” in subject line, and then forwarding it via email to my cell phone number at vtext.com. Since the vtext service does not accept attachments, I do not receive the voicemail itself and am not billed for the data transfer to my cell, but do receive a text indicating I have a voicemail, including the caller id and name.
Not a bad solution and inexpensive too.
Saturday, February 28, 2009
PHP IIS and Windows XP
To fix, you need to add a file extension mapping:
Right click on your Default Web Site,
Choose the Home Directory tab,
Choose the Configuration button under Application Settings,
Choose the Mappings tab, and
add an extension mapping where the executable is "C:\PHP\php5isapi.dll" (or your installation directory) and the extension is ".php"
Another issue you will have is debugging information will not be presented users by default. This is generally a good thing, but for development purposes you may want some feedback behind your failed scripts.
Find your php.ini file, normally in your installation folder.
Search for display_errors = off and change to display_errors = on.
Restart IIS via Start | Run | CMD | iisreset and you should be returned debug info in your browser.
Sunday, February 08, 2009
Fedora 10 static IP and DNS issues
I found the subnet mask being set the same as the IP address, found the subnet mask being set to 32 bits, and found DNS servers not being retained after network, NetworkManager or server restarts.
Ultimately I edited /etc/sysconfig/networking/devices/ifcfg-eth0 by hand and all seems to be well. Mine ultimately looks like so:
# Intel Corporation 82801BA/BAM/CA/CAM Ethernet Controller
DEVICE=eth0
HWADDR=00:00:00:00:00:00
BOOTPROTO=none
ONBOOT=yes
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
NM_CONTROLLED=yes
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=10.101.10.4
GATEWAY=10.101.10.1
DNS1=10.101.10.1
DNS2=4.2.2.2
This survives service network restart, service NetworkManager restart, and server reboots, but I imagine it is the only trustworthy method of modifying the IP adressing.
Sunday, January 25, 2009
Dynamips idlepc value and real network interface
idlepc get router name in dynamips config
This will return a list of values between 1 and 10, with one or more flagged with an asterisk. Pick one and save it to the Dynamips config:
idlepc save router name in dynamips config db
Once you do this for each running router, you will see an imediate drop in processor load via Task Manager.
If you need to create or modify the interface between a Dynamips switch and your host, the way to identify the host interface is via C:\Program Files\Dynamips\Network device list.cmd. You will need the line beginning with NIO.
For example, this line output by the cmd, NIO_gen_eth:\Device\NPF_{953F2C44-6A41-4C47-9C34-ADAA33FB8517} would be used in the Dynamips lab .net file you are running.
For example, this snippet in your lab config:
[[ETHSW S1]]
1 = access 1
2 = access 2
3 = access 3
# 3 = dot1q 1
#4 = dot1q 1 NIO_gen_eth:eth0
4 = dot1q 1 NIO_gen_eth:\Device\NPF_{F92B0F04-5464-4EED-92FD-F8890A8091A2}
indicates NIO_gen_eth:\Device\NPF_{F92B0F04-5464-4EED-92FD-F8890A8091A2} will be used as a 802.1Q trunk interface on switchport 4.
Monday, January 05, 2009
Hiding AD users from CallManager directory lookups
Basically you need to change the AD user descriptions to CiscoPrivateUser