context default { include office_extensions;}context office_extensions { include standard_extensions; "411" => directory; "456" => conference; "519" => bridge;}context standard_extensions { "_1XX" => standard_extensions;}context long_distance { include local; "_1NXXNXXXXXX", "_NXXNXXXXXX" => long_distance;}context local { include default; include parkedcalls; "_NXXXXXX" => local_call; "_1800NXXXXXX", "_1888NXXXXXX", "_1877NXXXXXX", "_1866NXXXXXX" => tollfree_call;}..... Above is dial plan configuration (which is a set of contexts) .......... and, below is dial plan execution (which is a set of extensions) .....extension long_distance dialout(extension);extension local_call dialout(extension);extension tollfree_call dialout(extension);void dialout( string extension, int timeout ) { // er this is where i stopped today.... SetCallerID(1234567890); SetCIDName(Big Company);}extension standard_extensions { string status; status = Dial( "SIP/exten".extension, 20, "t" ); switch status { case "ANSWER" { } case "BUSY" { status = Voicemail("b", extension ); } default { status = Voicemail("u", extension ); } } // Status gotten from voicmail if status == "a" VoicemailMain( extension ); // Go to the default context so that you can still dial something else. goto_context( default );}extension directory Directory(default);extension conference Meetme(4569);extension bridge Dial(IAX2/aouaoeu@asdfasdf/100);