Aleksandar's computer workshop
Let's see what Aleksandar was fixing today.
My findings, tips & tricks related to computers, internet, programming and other stuff I was working with.

How to solve mystery of not sent CallerID via SIP in Asterisk

July 7, 2009 19:59 by Aleksandar

Today I was helping my colleague to find a reason why outgoing calls did not send out correct CallerID and all calls are shown as private on destination device.

First we checked the extensions.conf which does decent job and looks like this:

[forward]
exten => _X.,1,NoOp("going to do a forward to number")
exten => _X.,n,SetCallerPres(allowed)
exten => _X.,n,Set(CALLERID(num)=${IF($["${CALLERID(num):0:1}" = "0"]?"${CALLERID(num):1}":"${CALLERID(num)}")})
exten => _X.,n,Set(CALLERID(num)=${IF($["${CALLERID(num):0:1}" = "0"]?"${CALLERID(num):1}":"${CALLERID(num)}")})
exten => _X.,n,Set(CALLERID(num)=${IF($["${CALLERID(num):0:2}" = "31"]?"00${CALLERID(num)}":"${CALLERID(num)}")})
exten => _X.,n,Set(CALLERID(num)=${IF($["${CALLERID(num):0:4}" = "0031"]?"${CALLERID(num)}":"0031${CALLERID(num)}")})
exten => _X.,n,Set(CALLERID(name)=${CALLERID(num)})
exten => _X.,n,NoOp("************************ dialing ******************************************")
exten => _X.,n,NoOp(${CALLERID(all)})
exten => _X.,n,Dial(SIP/voipprovider/${DTNUM},25,r)
exten => _X.,n,Playback(silence/1)
exten => _X.,n,Dial(ZAP/r2/${DTNUM},15,r)
exten => _X.,n,NoOp("going to try once with backup number")
exten => _X.,n,Playback(silence/1)
exten => _X.,n,Dial(SIP/voipprovider/${DTBNUM},25,r)
exten => _X.,n,Playback(silence/1)
exten => _X.,n,Hangup

exten => s,1,NoOp("s 1 End")
exten => s,n,Hangup

exten => h,1,NoOp("h 1 End")
exten => h,n,DeadAGI(end_call.agi)
exten => h,n,Hangup

exten => t,1,NoOp("t 1 End")
exten => t,n,Hangup


Actual problem is setting in Sip.conf

[voipprovider]
username=***** <---- put your own stuff here
secret=****** <---- put your own stuff here
type=peer
qualify=no
nat=yes
insecure=very
host=sip.voicetrading.com
fromuser=someusername  <--- problem is here

canreinvite=no
allow=alaw
dtmfmode=inband
realm=voicetrading.com


Due to this one line which sets the fromuser value all outgoing calls had hidden/private CallerID. After removing this line code in extensions started working properly and all calls started to have correct CallerID.


Solving problems with the MS header "SOAPAction"

June 8, 2009 23:45 by Aleksandar

Today I have faced some errors during implementation of some 3rd party SOAP service. Proxy was made with received WSDL file using this command:

"c:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\wsdl.exe" /language:VB  /protocol:SOAP /namespace:testNamespace sampleservice.wsdl /server

Command above will convert WSDL file to ASMX server proxy class file.

After first test I got this error:

The methods testMethod1 and testMethod2 use the same SOAPAction ''. When the RoutingStyle of the XML Web service is SoapAction, SOAPAction values must be unique across methods on the XML Web service. You can change the SOAPAction with the Action parameter to the SoapDocumentMethod or SoapRpcMethod attributes, or you can specify a RoutingStyle of RequestElement on the XML Web service.

In order to fix this problem add line marked with bold green color in class definition:

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel

<System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42"), _
System.Web.Services.Protocols.SoapDocumentService(RoutingStyle:=SoapServiceRoutingStyle.RequestElement), _
System.Web.Services.WebServiceAttribute([Namespace]:="testNamespace"), _
System.Web.Services.WebServiceBindingAttribute(Name:="TestSoapBinding", [Namespace]:="testNamespace")> _
Public Class testWebService

' your class code comes here 

End Class


inSSIDer is (much better) replacement for antient Netstumbler

June 4, 2009 21:27 by Aleksandar

inSSIDer is an free, award-winning Wi-Fi network scanner application for Windows Vista and Windows XP.
It scans networks within reach of your computer's Wi-Fi antenna, tracks signal strength over time, and determines their security settings (including whether or not they're password-protected).

NetStumbler, the most popular Wi-Fi network scanner, is free, but it hasn't been actively developed for years, and it doesn't work well with Vista or 64 bit OS.

inSSIDer, on the other hand, works like a charm on both Vista and XP, 32 and 64 bit, and it's open-source.

This must-have for hunting down Wi-Fi networks on the road.

Features

  • Works with internal Wi-Fi radio
  • Wi-Fi network information (SSID, MAC, data rate, signal strength, security, etc)
  • Group by Mac Address, SSID, Channel, RSSI and "Time Last Seen."
  • Graph the strength of received signal in dBm over time
  • Filter access points in an easy to use format.
  • Highlight access points for areas with high Wi-Fi concentration.
  • Open source (Apache License, Version 2.0)

URL: http://www.metageek.net/products/inssider


How to debug HTTP requests when developing and testing Web applications and clients

June 4, 2009 16:33 by Aleksandar

Have you ever found yourself wondering how browser interacts with your Web application? Have you encountered a strange performance bottleneck that you can't track down? Are you curious about which cookies are being sent, or what downloaded content is marked as cacheable?

In Web and Internet development you are unable to see directly what is being sent and received between your web browser / client and the server. Without this visibility it is difficult and time-consuming to determine exactly where the fault is.

Don’t give up, there are some applications to help you out.

On developers computer (client side) you will go for HTTP proxy like Fiddler or Charles.
For server debugging (in most situations) you can't use proxy. In that case you have to use network packet sniffer or network protocol analyzer like Wireshark (used to be known as Ethereal)

About Fiddler

Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP(S) traffic, set breakpoints, and "fiddle" with incoming or outgoing data. Fiddler includes a powerful event-based scripting subsystem, can be extended using any .NET language and has ready powerful extensions.

Fiddler is freeware and can debug traffic from virtually any internet application, including Internet Explorer, Mozilla Firefox, Opera, and thousands more.

It will run only on Windows.

http://www.fiddler2.com/




About Charles

Charles is a web proxy (HTTP Proxy / HTTP Monitor) that runs on your own computer. Your web browser is then configured to access the Internet through Charles, and Charles is then able to record and display for you all of the data that is sent and received.

Charles makes debugging quick, reliable and advanced; saving you time and frustration!

Key Features

  • SSL Proxying – view SSL requests and responses in plain text
  • Bandwidth Throttling to simulate slower Internet connections including latency
  • AJAX debugging – view XML and JSON requests and responses as a tree or as text
  • AMF – view the contents of Flash Remoting / Flex Remoting messages as a tree
  • Repeat requests to test back-end changes
  • Edit requests to test different inputs
  • Breakpoints to intercept and edit requests or responses
  • Validate recorded HTML, CSS and RSS/atom responses using the W3C validator

It is shareware, and you may try Charles for 30 days.

It will run on Windows, Mac OS X and Linux/Unix.

http://www.charlesproxy.com/


About Wireshark

Wireshark is the world's foremost network protocol analyzer, and is the de facto (and often de jure) standard across many industries and educational institutions.
Network professionals, security experts, developers, and educators around the world use it regularly.
It is freely available as open source, and is released under the GNU General Public License version 2.
It is developed and maintained by a global team of protocol experts, and it is an example of a disruptive technology.
Wireshark used to be known as Ethereal. If you're still using Ethereal, it is strongly recommended that you upgrade to Wireshark.
Wireshark development thrives thanks to the contributions of networking experts across the globe. It is the continuation of a project that started in 1998.

Wireshark has a rich feature set which includes the following:

  • Deep inspection of hundreds of protocols, with more being added all the time
  • Live capture and offline analysis
  • Standard three-pane packet browser
  • Multi-platform: Runs on Windows, Linux, OS X, Solaris, FreeBSD, NetBSD, and many others
  • Captured network data can be browsed via a GUI, or via the TTY-mode TShark utility
  • The most powerful display filters in the industry
  • Rich VoIP analysis
  • Read/write many different capture file formats: tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (compressed and uncompressed), Sniffer® Pro, and NetXray®, Network Instruments Observer, NetScreen snoop, Novell LANalyzer, RADCOM WAN/LAN Analyzer, Shomiti/Finisar Surveyor, Tektronix K12xx, Visual Networks Visual UpTime, WildPackets EtherPeek/TokenPeek/AiroPeek, and many others
  • Capture files compressed with gzip can be decompressed on the fly
  • Live data can be read from Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, Frame Relay, FDDI, and others (depending on your platfrom)
  • Decryption support for many protocols, including IPsec, ISAKMP, Kerberos, SNMPv3, SSL/TLS, WEP, and WPA/WPA2
  • Coloring rules can be applied to the packet list for quick, intuitive analysis
  • Output can be exported to XML, PostScript®, CSV, or plain text  

It runs on Windows, OS X, Linux and UNIX

http://www.wireshark.org/