Asterisk VoIP News

Wednesday, June 15, 2005

Second Half of ManxPowers presentation

We return now after the break.

-Contexts are extemely powerful - they give security, seperation on priveleges. You may for example want one particular phone to not be allowed to make toll calls etc. You would put this in say a "notrust" context and then only include local outbound dialing.

-Macros: very powerful and can be quite simple. For example most of the users want to be able to forward/voicemail etc. Instead of coding this for each extension, you can create a macro and then each phone will only needs a one line entry in the extensions.conf file

-DIALSTATUS: possibly one of the most useful variables in Asterisk.

-/usr/src/asterisk/doc/README.variables contains a list of all of the available variables for use with Asterisk (built in)

-Let carrier do the billing via account codes etc.

-Route calls via Asterisk machines if the dialed number is local to one of your Asterisk machines.

-NoOp can be used to print out variables on the console. For example:

exten => s,1,NoOP(${CALLERID})

-Use a PRI if you can afford it (E1/T1). You get full information from PRI's on the status of dialed calls. At least get a quote on one even if you only have 8 channels. The small additional cost is more than made up for by the extra information provided

-You could probably put two quad PRI cards into a dual CPU box as long as your calls are not too short. This is because call setup is resource intensive.

-Transcoding is also resource intensive.

-Scalability is very much based on what you are using the system for.

-Phone == type=friend. Anything else type=peer and type=user seperately. Many providers expect different details for incoming vs outgoing calls. Some people say never use friends. However a friend is exactly the same as an identical peer and user.

-Use IAX2 native transfers when possible. WARNING: this will make the cdr incorrect on the machine that jumps out of the loop.

-SIP and NAT: Use a static IP for Asterisk.

-Assuming Asterisk is not behind a NAT, and all of the SIP devices are behind NAT. all you should need to do is add nat=yes. Qualify=yes (or a value) so that the connection is refreshed.

-If you don't have qualify=yes, you may find that the phone can only receive calls just after reboot.

-If your * server is on public IP you shouldn't need externip=x or localnet=x

-Say for example you have double NAT, you will need to deal with externip, localnet.