[Asterisk-Users] .call file creation

Dan Adams l-asterisk at infochi.com
Tue Jan 25 08:28:56 MST 2005


Thanks much

Dan

On Tue, 25 Jan 2005, Glenn Powers wrote:

> Dan Adams wrote:
>
>> I am curious partly because it has occurred randomly in my asterisk 
>> system. How does one go about creating a .call file for placing a call 
>> between two extensions/phones? I know this has been mentioned and is 
>> probably in one of the wikis somewhere, but I am unsure exactally how to 
>> go about doing it. Can anyone point me in the right direction.
>
>
> http://voip-info.org/tiki-index.php?page=Asterisk%20auto-dial%20out
>
> Here's a web interface (click-to-dial) for creating .call files (part of 
> XRMS, an open source CRM package):
>
> <?php
> /*
> *
> * CTI / Asterisk Outdial XRMS Plugin v0.2
> * uses asterisk from:
> * http://www.asterisk.org/
> *
> * copyright 2004 Glenn Powers <glenn at net127.com>
> * Licensed Under the Open Software License v. 2.0
> *
> */
>
> /*
> *
> * If you are using the sip.conf based lookupCID,
> * Be sure to add crm_username(s) to your sip.conf file. See below.
> *
> * IF Asterisk is running on the same server as XRMS,
> * MAKE SURE /var/spool/asterisk/outgoing is writable
> * by your web server.
> *
> * IF asterisk is running on another server, use sftp
> * to copy the file over.
> *
> */
>
> /*
> * LookupCID :: ismaeljcarlo
> * simple function to lookup extension number from sip.conf
> *
> * ismaeljcarlo at users.sourceforge.net created this function which looks up
> * the value of crm_username from sip.conf and returns the proper extension.
> *
> */
>
> function lookupCID($thelookupCID) {
>
>       $lookupCID_sip_array = parse_ini_file("/etc/asterisk/sip.conf", true);
>
>       while ($v = current($lookupCID_sip_array)) {
>               if (isset($v['crm_username'])){
>                       if($v['crm_username'] == $thelookupCID) {
>                               $thelookupCID = key($lookupCID_sip_array);
>                               return $thelookupCID;
>                       }
>               }
>               next($lookupCID_sip_array);
>       }
> }
>
> /*
> * End LookupCID
> */
>
> // include the common files
> require_once('../../include-locations.inc');
>
> require_once($include_directory . 'vars.php');
> require_once($include_directory . 'utils-interface.php');
> require_once($include_directory . 'utils-misc.php');
> require_once($include_directory . 'adodb/adodb.inc.php');
> require_once($include_directory . 'adodb-params.php');
>
> $con = &adonewconnection($xrms_db_dbtype);
> $con->connect($xrms_db_server, $xrms_db_username, $xrms_db_password, 
> $xrms_db_dbname);
> // $con->debug = 1;
>
> $session_user_id = session_check();
> $session_username = $_SESSION['username'];
> $msg = $_GET['msg'];
>
> $contact_id = $_GET['contact_id'];
> $company_id = $_GET['company_id'];
> $phone = $_GET['phone'];
> $phone_dial_prefix = "1";
>
> $msg = urlencode(_("Dialing Phone Number: ") . $phone);
>
> // Get contact name
>
> $sql = "SELECT first_names,last_name from contacts
>       WHERE contact_id = " . $contact_id . " LIMIT 1";
> $rst = $con->execute($sql);
>
> if ($rst) {
>   if (!$rst->EOF) {
>       $contact_name = urlencode($rst->fields['first_names'] . " "
>             . $rst->fields['last_name']);
>   }
> }
>
> // Get variables from the custom fields of the user's contact id.
>
> $sql = "SELECT custom1, custom2, custom3 from contacts, users
>       WHERE  users.user_id = " . $session_user_id . "
>       AND contacts.contact_id = users.user_contact_id
>       LIMIT 1";
> $rst = $con->execute($sql);
>
> if ($rst) {
>   if (!$rst->EOF) {
>       $channel = $rst->fields['custom1'];
>       $extension_to_dial = $rst->fields['custom2'];
>       $CID = $rst->fields['custom3'];
>   }
> }
>
> // $sipCID = lookupCID($session_username);
>
> // This is the file that will be passed to Asterisk
>
> $dial_file_contents = "Channel:$channel$extension_to_dial
> MaxRetries: 1
> RetryTime: 60
> WaitTime: 30
> Callerid: $CID
> Context: xrms
> Extension: $phone_dial_prefix$phone
> Priority: 1
> ";
>
> $filename = $xrms_file_root . "/tmp/outdial-$phone";
>
>  if (!$handle = fopen($filename, 'w')) {
>        echo "Cannot open file ($filename)";
>        exit;
>  }
>
>  if (fwrite($handle, $dial_file_contents) === FALSE) {
>      echo "Cannot write to file ($filename)";
>      exit;
>  }
>  system("mv $filename /var/spool/asterisk/outgoing");
>
>  fclose($handle);
>
> // Create an Activity on Dial
> header("Location: ../../activities/new-2.php?user_id=" . $session_user_id
>   . "&activity_status=o&activity_type_id=1&contact_id="
>   . $contact_id . "&company_id=" . $company_id . "&activity_title="
>   . _("Call%20To%20") . $contact_name
>   . "&return_url=/contacts/one.php?contact_id=" . $contact_id);
>
>
> // if you don't want to create an activity on dial, use this instead:
> // header("Location: 
> $http_site_root/contacts/one.php?contact_id=$contact_id&msg
>
>  if (fwrite($handle, $dial_file_contents) === FALSE) {
>      echo "Cannot write to file ($filename)";
>      exit;
>  }
>  system("mv $filename /var/spool/asterisk/outgoing");
>
>  fclose($handle);
>
> // Create an Activity on Dial
> header("Location: ../../activities/new-2.php?user_id=" . $session_user_id
>   . "&activity_status=o&activity_type_id=1&contact_id="
>   . $contact_id . "&company_id=" . $company_id . "&activity_title="
>   . _("Call%20To%20") . $contact_name
>   . "&return_url=/contacts/one.php?contact_id=" . $contact_id);
>
>
> // if you don't want to create an activity on dial, use this instead:
> // header("Location: 
> $http_site_root/contacts/one.php?contact_id=$contact_id&msg=$msg");
>
> ?>
> _______________________________________________
> Asterisk-Users mailing list
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
> To UNSUBSCRIBE or update options visit:
>  http://lists.digium.com/mailman/listinfo/asterisk-users
>



More information about the asterisk-users mailing list