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 <[EMAIL PROTECTED]>
* 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
*
* [EMAIL PROTECTED] 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
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to