[Asterisk-Users] *** Asterisk Summer News: Forget numbers, dial by domain!

Olle E. Johansson oej at edvina.net
Fri Aug 13 09:34:58 MST 2004


Welcome to a new issue of Asterisk Summer News!

The holiday season is coming to an end here in Sweden, people are
getting back to work and the kids will start going to school next week.
Life is slowly adopting to normal and I have to start dressing more
towards a businessman than a beach bum. Guess I have to start going
to the gym again as well. Anyway, back to the topic. Asterisk and
VoIP. Asterisk and VoIP is a large area of knowledge to cover, you
learn more each day. A gym for the brain, a gym I'm visiting every day.
Reading RFCs, reading source, experimenting with devices. It's a lot
of fun. In this issue, I'm inviting you to my VoIP gym, talking about
how you enable other to dial you by your e-mail address. Once you start
doing it, it becomes a natural thing. We also cover the new release candidate
and news from Asterisk developers.

*** In this issue
* Astricon 2004 Update
* SIP: Dial by names
* Asterisk 1.0rc2 out - test it!
* Warning: Asterisk HANGUPCAUSE changed values
* CVS changes and additions

*** Astricon 2004 Update: It's getting closer
---------------------------------------------
Astricon is getting closer and as I see it now, we're going to be
more than 200 Asterisk users, developers, providers, gurus,
sales people and hobbyists. It's going to be a great gathering
with world-wide networking. People are registering from all over
the globe. It's really great. All the work that we've done to get
this event off the ground will be paying off. For a while, we were
quite nervous, having bought quite a lot of hotel nights and quite
a lot of food. Now, we can breath again and cancel the invitations for
all of our family to spend christmas in our prepaid rooms at Marriot
in Atlanta :-) It'll be a lot of fun meeting you all in person.
I'm sure it will mean a lot for the asterisk.org project as well.
On the web site, you'll find the full agenda, the list of our
Astricon sponsors (changes often!) and the information you need
to join us in Atlanta!

* Astricon Web site: http://www.astricon.net


*** Theme article: SIP: Dial by names
-------------------------------------

Do you belong to the part of humanity that feels it's easier to remember names
than numbers? My wife is the opposite, just mention a number in the middle of
a sentence by accident and she will remember it a week later. I cannot burden
my brain with remembering anything else than 42. It's all that matters,
anyhow :-)

I remember e-mail addresses and domains though, so SIP fits perfectly well.
SIP is all about setting up sessions - multimedia, video, games, presentations
and phone calls - by name and domain. A good SIP uri looks like

	sip:olle at astricon.net

This means "Try to find who's responsible for the domain astricon.net SIP
connections, and contact that server."

How does that work? By DNS, of course. If you e-mail "info at astricon.net"
your e-mail client or outgoing server will lookup the domain "astricon.net"
in DNS. First, it does not look for a host named "astricon.net", but another
kind of DNS entry that specifies one or several mail servers that can handle
mail to the astricon.net domain. If the first one doesn't respond, your e-mail
gateway will contact the next one.

SIP works the same way. Your phone or your outbound proxy will try to find
out who is responsible for SIP connections to your domain. This is specified
with DNS SRV records. If the first server (or SIP proxy) doesn't respond,
try the next one.

By adding DNS SRV records to your domain, specifying your SIP proxy, you
SIP-enable the domain. Cool! Now everyone on the Internet will be able
to call you, just like everyone can e-mail you if you give them your
e-mail address. This is the way of the Internet.

* More info on DNS SRV records: http://www.voip-info.org/wiki-DNS+SRV
* More info on why I remember 42: http://tinyurl.com/5e3tl

*** How do you enable this in Asterisk?
---------------------------------------
If you want to add your cool SIP uri to your business card and e-mail signature,
like all the VoIP professionals do, you have to open up your Asterisk server
to receive calls from anyone - only to these extensions.

* Add a default context to SIP.conf [general] section
In the [general] section of SIP.conf, you can specify a context that is open
for everyone that is not a known peer or user. This is the door you have
to open to be able to receive calls.

* Add usernames to that context
In this context you want to enter the user names, mostly like the ones you
use for email, like

    exten => info, 1, dial(SIP/3002)
    exten => gunilla, 1, dial(SIP/2010)
    exten => sales, 1, queue(forever)

I think you understand by now.

* Test it
Use an account with a SIP provider like iptel.org, FWD, sipgate.de or bbtele.se.
Register with X-lite from Xten and enter a full URI by using the keyboard.
X-lite will find the domain and call, if you haven't configured an outbound
proxy. If you are using an outbound proxy, then it's up to the proxy to find
the receiving proxy.

* How do you separate these calls from the rest?
When Asterisk receives inbound calls, it strips off the domain name and keeps
the user part. A call to info at astricon.net and info at edvina.net ends up being
a call to "info", regardless of the domain. You really can't see who they
want to connect to if your Asterisk supports multiple domains.

The solution here is the ${SIPDOMAIN} variable. The domain is stored in that
variable, so you can easily test it with the gotoif application.

The phones connected to your Asterisk are propably configured for another context,
so you don't have to bother with those. Just catch all calls with a starting
extension, then forward them to separate contexts for each domain.

* How do I let local Asterisk phones dial by URI?
If you have a phone that supports URI dialing, either from a keyboard like
X-lite or an web page like the SNOM, you can enable SIP dialling for your
local SIP phones. Catch the ${SIPDOMAIN} in the incoming context, if it
isn't your local hostname or IP address, then the call is outbound and you
can dial ${EXTEN}@${SIPDOMAIN}. Make sure you enable DNS SRV records in sip.conf
first, otherwise it will not work properly. I see a lot of calls going to the
web server that hosts the edvina.net web. This is not my SIP proxy at all.
In order to reach me by SIP address, you must have DNS SRV support.

Most phones will support dialling by SIP address in one way or another
sooner or later. Start to use them now.

*** What's the difference between a SIP AOR and Contact URI?
SIP have two kinds of addresses, or URIs. One is the permanent address,
or Adress of record (AOR). This is the address people can use to call you,
wherever you are, regardless of IP adress or phone.

The other address is the address to a phone, a contact address. This usually
consists of a device name, IP address and port number. This is a temporary
address that your SIP location server keeps in memory as long as it is valid.
Your phone registers with the location server to tell it how to map one
permanent (AOR) address to one or several SIP contacts.

When SIP sets up a call, you dial a permanent address. The SIP proxy receives
this address and tries to find the person (or service) you are calling. When
that device answers, the caller receives the temporary address which is used
to set up the call.

Complicated? yes. But it adds a lot of flexibility. My permanent address
maps to my laptop, a SNOM phone, my FWD account and in some cases my cell phone
(through Asterisk, of course).

* Voip-info: SIP Uri: http://www.voip-info.org/tiki-index.php?page=SIP%20URI

*** Limitations in Asterisk SIP support
Asterisk is the greatest and most superior Open Source PBX with multiprotocol
support there is, no question about it. But it does have some limitations here
and there. One is that when dialling SIP calls by URI, only one proxy is contacted.
If you have multiple proxies (proxys?) in your DNS, the first one is used.

Secondly, when you receive calls from the outside, the Call ID is changed so
the URI of the caller is not sent to the phone. This is a limitation that means
that the phone is unable to call back. Not very smart.

And yes, we're trying to fix these limitations. One step at a time, Asterisk
gets more SIP friendly for each patch we are adding. I'm doing quite a lot
of experiments within the realm of the chan_sip2 project. If you are interested
in improving Asterisk's SIP support, please test the chan_sip2 channel and help
me with the development of that version.

* The Chan_sip2 Project:
   http://www.voip-info.org/tiki-index.php?page=Asterisk+SIP+chan_sip2

    >>> And yes, I've suggested to both Adam (Firefly) and Steve
    (IAX Client for windows) to support SIP Uri dialling from their
     IAX softphones - over IAX2. It would be so cool!)

*** Asterisk version 1.0 - release candidate 2 is out!
------------------------------------------------------
After a lot of patches and bug fixes (see below) we're proud to present the release
candidate 2 of Asterisk 1.0. Please test extensively and report all bugs and possible
bugs and bug feelings! Start with finding a bug marshal on IRC, then if the bug
is confirmed - report it on the bug tracker. Bug marshals usually are connected
to #asterisk-bugs or #asterisk-dev - just call for a bug marshal when you need one
of us. Due to time zone differences, you'll propably get a 24 by 7 service on the
IRC channel.

Find the download mirrors on the link below. Please don't hit the Digium FTP-server,
since development need that connection for the bug tracker and the CVS.

Asterisk Download Mirror listing
* http://www.voip-info.org/tiki-index.php?page=Asterisk%20download


*** Warning: AST_HANGUPCAUSE changed!
-------------------------------------
In a recent CVS update, the Asterisk code for hangup causes was changed to match
ISDN Q.931 codes. So if you rely on these in your dial plan, you may need to update
your dial plan! New hangup codes are to be found in the CVS update. This was done
*after* rc2, so it only applies to CVS head users.

* For a list, see:
   http://www.voip-info.org/tiki-index.php?page=Asterisk+variable+hangupcause


*** Recent CVS changes
----------------------
Since the last newsletter, a lot of the concentration has been focused on
bug fixing for version 1.0. A lot of proposed features are put on hold
in the bug tracker. A lot of love has been given to the MGCP channel, that
has been updated quite a number of times during the last week.

Here's a number of additions done to Asterisk CVS head since last newsletter:

GENERAL/MISC
* CLI: Bug # 2174/2185: Respect AST_EDITOR environment variable in the CLI
* CLI: Don't load empty strings from history file
* CLI & Manager: Add timer to show status commands
* CLI: Fix verboser issue over network (#2217)
* Manager: Bug # 2170: Add authority_to_str function to let Administrator
        issue command to find privilege string
* Asterisk: Allow priority to be set in addition to -U / -G (bug #2173)
* Add transfer digit timeout capability (set in features.conf) (bug #2184)
* Enabled default music on hold music (new music file as well)
* Makefile: Fixes to enable "make clean", freetds version check and mpg123 support


APPLICATIONS
* queue: Bug # 2171: Add permission to QueueAdd and QueueRemove manager commands
* meetme: Add user number to manager events (bug #2203)
* meetme: Add "X" option to meetme and add ${MEETME_EXIT_CONTEXT}
* parking: Only create parking entries when calls actually get parked
* parking: Fix so that MOH doesn't get killed on Call Parking
* directory: Allow directory to be searched by first name (bug #2208)
* dial: Enforce timelimit across entries to ast_channel_bridge (bug #2222)
* voicemail: Configurable voicemail pager notification from string (bug #2142)
* config: Allow "on" and "off" as compliments to "Yes" and "no" in config files


CHANNELS
* chan_sip: Default port to 5060
* chan_sip: Improve debugging of RTP ports
* chan_sip: Send proper contact in 200 OK to REGISTER
* chan_sip: Allow SIP call parking with supervised transfer
* chan_iax2: Add default username patch (bug #2178)
* chan_iax2: Fix information elements
* chan_iax2: Improved Bridging
* chan_mgcp: Add mgcp.conf.sample for Wave7Optics FTTH LMG
* chan_mgcp: Bug # 2181: Support the PING event in MGCP.
* chan_mgcp: Fix MGCP endpoint (#2182)
* chan_mgcp: Fix reload with wildcard endpoint
* chan_mgcp: Don't reload subchannels of wild card endpoint on reload.
* chan_mgcp: Create initial framework for single channel support
* chan_mgcp: Don't offer codecs not allowed on a reinvite
* chan_mgcp: Don't request tones when in-band DTMF mode is enabled (bug #2248)
* chan_h323: Fix potential overflow in H.323
* chan_zap: Reset conferencing on final hangup (bug #2172)
* chan_zap: Create manager ZapShowChannels comamnd (#2186)
             to monitor zap channel status
* chan_zap: Make Asterisk cause codes match those of Q.931 (bug #1999)
* rtp: Don't hard code the RTP DTMF payload type to 101 (bug #2192)
* wcfxs: Merge polarity reversal detection (bug #9)
* agent: Fix agentcallbacklogin wrapup time


PORTABILITY
* chan_h323 Makefile change for FreeBSD (Bug #2064)
* Memory size correctly set for threads in FreeBSD (Bug 2067)
* Fix OpenBSD compile (bug #2193)
* Fix duplex code for FreeBSD in chan_oss (local sound card)

NEW APPLICATIONS
* Park: Used to park yourself (typically in combination with
   a supervised transfer to know the parking space.
* Verbose: Send a message to the console and log file
* SetCallerPres(presentation): Set Caller*ID presentation on a
   call to a new value.  Sets ANI as well if a flag is used.

Upgrade your Asterisk now and test all these new functions!


*** Epilogue: Feedback wanted!
------------------------------

If you have Asterisk-related news or topics that you want me to
include in Asterisk News - e-mail me at oej at edvina.net. I'm always
interested to hear from you, regardless if it's a press release,
a rumour, something you want explained or a clever Asterisk trick.

I've gotten a lot of feedback already, thank you everyone that
mailed me or sent me a note over IRC.

Have a great Asterisk week!

/O



More information about the asterisk-users mailing list