Niels' Blog

A Dutch techie in China

Archive for March, 2006

Addpac 200 with Asterisk

After telling you how to turn a Pilmo Voicefinder into an Addpac 200 I noticed some people are looking for an actual configuration example. Some fragments might not be needed in your setup.

The Addpac 200 configuration:

version 8.12!hostname AP200!no ip-share enableip-share interface net-side ether0.0ip-share interface local-side ether1.0!interface ether0.0ip address 192.168.1.3 255.255.255.0description eth0!interface ether1.0no ip addressip dhcp-group 0!snmp community 192.168.1.8 public rosnmp name AP200A!no arp reset!route 0.0.0.0 0.0.0.0 192.168.1.1!dnshost  domain peen.netdnshost  nameserver 192.168.1.2!service snmpd!user add niels somepassword admin!! VoIP configuration.!! Voice service voip configuration.!voice service voipfax protocol t38 redundancy 0fax rate 9600h323 call start fastannouncement language englishbusyout monitor gatekeeperbusyout monitor voip-interface!! Voice port configuration.!voice-port 0/0! FXSinput gain -3output gain -3caller-id enablecaller-id type etsi-dtmf-prior-ring!! Pots peer configuration.!dial-peer voice 0 potsdestination-pattern 1000port 0/0user-password asteriskpassword!! Voip peer configuration.!dial-peer voice 1000 voipdestination-pattern Tsession target sip-serversession protocol sipanswer-address 1000codec g711ulawdtmf-relay rtp-2833no vad!! Gateway configuration.!gatewayh323-id voip.192.168.1.3public-ip 192.168.1.3!! SIP UA configuration.!sip-uasip-server 192.168.1.35timeout tregtry 10!! MGCP configuration.!mgcpepid-typecodec  g711ula!! Tones!voip-interface ether0.0

The Asterisk part (sip.conf):

[1000]type=friendsecret=asteriskpasswordhost=dynamicdtmfmode=rfc2833username=1000canreinvite=nodisallow=allallow=ulawqualify=yescontext=defaultcallerid=Addpac handset <1000>
  • 0 Comments
  • Filed under: Tech
  • Geo DNS

    There are many databases and pieces of code out there that allow you to detect which country (or even city) a visitor to your website is from. Most of this code is intended to allow you to adjust the content of your website. Very useful. Really!

    There are instances however where adjusting content is not enough. Sometimes you will want to redirect users to a server that is local to them. This could be because you have lag-sensitive traffic like VoIP of game servers. It could also be that you generate a lot of traffic and local traffic is simply cheaper than transit. Or maybe you have multiple entry points for VPN and email traffic into your corporate network. Whatever it is, the only way to do this transparently is to make sure your DNS hands out the right IP address to your users. Doing this based on ip-country databases is not ideal but it should get you a long way.

    I looked around a bit for a way to do this. There are a few special DNS servers for this purpose. There are also some patches for Bind. I’m not a fan of either special or patches though, they often imply maintenance.

    So I wrote a little command-line script called geobind.php to convert the database provided by Webnet77 to Bind acl’s. (Requires PHP4 cli version to be installed; make sure to edit variables at the beginning of the script.)

    Once you have these acl’s you can use Binds view functionality to serve different versions of your zone file to different parts of the world. Each zone file would of course point to IP addresses that are local to that specific part of the world.

    Imagine you have 3 zone files: one for europe, one for the america’s and one for the rest of the world. You simple edit named.conf.local to include the acls for europe and the america’s. E.g.:

    include “/etc/bind/named.conf.options”;
    include “/etc/bind/acl-europe_east.inc”;
    include “/etc/bind/acl-europe_sout.inc”;
    include “/etc/bind/acl-europe_west.inc”;
    include “/etc/bind/acl-europe_nort.inc”;
    include “/etc/bind/acl-america_cari.inc”;
    include “/etc/bind/acl-america_cent.inc”;
    include “/etc/bind/acl-america_nort.inc”;
    include “/etc/bind/acl-america_sout.inc”;

    Next you create seperate views. One for europe, one for the america’s and one for everyone else.

    view “europe” {
    match-clients {
    europe_east;
    europe_nort;
    europe_sout;
    europe_west
    };
    zone “peen.net” {
    type master;
    file “/etc/bind/europe/db.peen.net”;
    };
    };
    view “americas” {
    match-clients {
    america_cari;
    america_nort;
    america_sout;
    america_cent
    };
    zone “peen.net” {
    type master;
    file “/etc/bind/americas/db.peen.net”;
    };
    };
    view “others” {
    match-clients { any; };
    zone “peen.net” {
    type master;
    file “/etc/bind/others/db.peen.net”;
    };
    };

    Reload Bind and see what happens! :)

    peen:~# rndc reload

  • 2 Comments
  • Filed under: Tech
  • Asterisk 1.2.4 with Sarge

    Of course this had to happen: I finish my 1.2.4 packages and the Asterisk team releases 1.2.5. Oh well, the Debian VoIP team will probably follow soon enough and so will I.

    When upgrading, make sure you choose the correct version of asterisk: asterisk-classic or asterisk-bristuff. Also, H323 support is removed and chan_capi is included by default now. The zaptel drivers (incl. hfc) have been pre-built for some common kernel versions. If you don’t like waiting, skip asterisk-doc, it’s a 13MB monster.

    deb http://debian.peen.net asterisk/

  • 0 Comments
  • Filed under: Tech