1. payam
  2. عمومی - ایزابل، الستیکس، فری پی بی اکس ...
  3. چهارشنبه, 26 بهمن 1390
با سلام خدمت دوستان عزیز
من چند وقت هست که می خوام از طریق AGI با PHP یک کد بنویسم که وصل بشه به Microsoft Sql و یک Store Procedure را اجرا کنه و مقدارش را به Asterisk بر گردونه ، ولی هنوز موفق نشدم ): کسی می تونه راه نمایی بکنه یا یک Sample code به من بده
راستش من گیج شدم تو یک سری Document از این روش به دیتا بیس وصل شده:
// Connect to the database - exit if error
$db = new database(
"mysql",
"localhost",
"FTSC",
"ftscuser",
"ftscpass";);
تو یک سری documnet این جوری گفته :

require_once("DB.php";);

$db =& DB::connect("mssql://user:password@host:1433/membership";);
if (DB::isError($db)) {
die($db->getMessage());
}

و تو یک سری این جوری:
include "agi.php" ;

$db=mysql_connect(’redacted’, ‘redacted’, ‘redacted’);

البته اینها همه برای اتصال به MySql هستش من می خوام به MSSLQ وصل بشم ... به هر حال اینا با هم چه فرقی داره در ضمن من freetds را نصب کردم و odbc.ini و freetds.conf را هم cofig کردم
با تشکر
نظر
هنوز هیچ نظری ارسال نشده است!
پاسخ پذیرفته شده Pending Moderation
0
رای
بازگشت
علاوه بر tds شما باید php-odbc را که rpm هست را نصب نمایید.

این لینک شما را خیلی کمک خواهد کرد
[left]http://www.savelono.com/linux/how-to-configure-linux-odbc-connections-for-ms-sql.html[/left]

در ضمن نحوه اتصال به mssql در php با اتصال به mysql کمی متفاوت است
نظر
هنوز هیچ نظری ارسال نشده است!
پاسخ پذیرفته شده Pending Moderation
0
رای
بازگشت
سلام

با نصب یک patch توسط دستور زیر به راحتی به واسطه agi-php به sqlserver می توانید وصل شوید .

[left]yum install php-mssql freetds[/left]

و مثلا در فایل .php بادستور زیر به sql وصل شوید


('msconn = mssql_connect('ip sql sever',user','pass

وبعد query بزنید و...در این حالت نیازی به تنظیم odbc و.....نیست البته همه جیز به سناریو شما بستگی دارد.موفق باشید.
نظر
هنوز هیچ نظری ارسال نشده است!
پاسخ پذیرفته شده Pending Moderation
0
رای
بازگشت
با تشکر از آقای حیدری و کوه فلاح
آقای کوه فلاح اون لینکی که فرستادید فقط طریقه Connect شدن را توضیح می دهد من همه این کار ها را کردم و به Database وصل هم می شم مشکل اینه که نمی دونم چه جوری باید query بزنم و مقدار برگشتی کجا ذخیره می شه و در ضمن چه جوری اونو به Asterisk برگردونم
آقای حیدری با همان روشی که گفتید و نصب mssql-php و tds با استفاده از mssql_connect به دیتابیس وصل می شم ولی همانطور که گفتم نمی دونم چه جوری query بزنم
در ضمن من چه جوری می تونم برنامه را debug کنم و error هاشو ببینم مثلا وقتی توی Visual studio برنامه می نویسید موقع مثلا compile کردن هم syntax error را می شه دید و هم می شه debug و trace کرد ولی وقتی یک agi را از توی dial-plan صدا می زنی ، توی Asterisk Console هیچ error ی نشون نمی ده؟؟؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!
با تشکر
نظر
هنوز هیچ نظری ارسال نشده است!
پاسخ پذیرفته شده Pending Moderation
0
رای
بازگشت
سلام
چند نکته:

1-در قسمت free pbx/tools/phpagi config ،debug=true
2- هنگام اجرا شدن برنامه توسط putty , دستور زیر log ببینید جه اتفاقی می افتد.

asterisk -r
agi set debug on

علاوه بر این شما باید با دستورت agi آشنایی داشته باشید.

مثال query زدن:

[left]
function connect_db() {
$db_connection = msql_connect ('ipsqlserver', 'user', 'pass';) ());
$db_select = mssql_select_db('cdrdb';) or die (mssql_error());
}[/left]

[left]connect_db();[/left]


[left]
$query1 = "SELECT pin_no FROM accounts WHERE clid = '$cli' ";
$query_result1 = mssql_query($query1);
$row_count = mssql_num_rows($query_result1);
$row1 = mssql_fetch_array ($query_result1)[/left]

اینم یک لینک مفید از دستورات agi,php و query زدن.شما به جای mssql ،mysql بزارید.

http://www.voip-info.org/wiki/view/Asterisk+AGI+php
نظر
هنوز هیچ نظری ارسال نشده است!
پاسخ پذیرفته شده Pending Moderation
0
رای
بازگشت
با سلام
با تشکر از آقای حیدری و راهنمایی مفید ایشان
من تونستم به دیتا بیس وصل بشم و query هم بزنم
الان مشکل من pass کردن پارامتر ها بین asterisk و AGI هستش!!!!!!!!!
اول اینکه در Dial Plan وقتی می خوام AGI را call کنم چه جوری پارامتر های ورودی را بهش pass کنم
دوم اینکه چه جوری پارامتر های خروجی را به Asterisk برگردونم
با STDIN و STDOUT زیاد کار نکردم !!!!! اگه یک sample بدید ممنون می شم
با تشکر
نظر
هنوز هیچ نظری ارسال نشده است!
پاسخ پذیرفته شده Pending Moderation
0
رای
بازگشت
سلام وقت بخیر

من رو یه سرور الستیکس 2.3 ریختم و میخوام توسط AGI به دیتا بیس SqlServer 2012 وصل بشم و دیتا بگیرم یا بدم

تو نسخه الستیکس 2.4 و 2.5 مشکلی نبود با نصب RPM و چند تا کانفیگ ساده اوکی شد و تونستم تو AGI به خواسته م برسم

ولی تو نسخه 2.3 rpm ها نصب نمیشن و وقتی با yum توسط دستور
yum install unixODBC* freetds*
نصب میکنم ظاهرا بدون خطا نصب میشه ولی وقتی میخوام تو کنسول با دستور
isql -v context sa 123456
تست بگیرم خطای درایور odbc میده

با توجه به نسخه centOS و PHP یی که تو نسخه 2.3 الستیکس نصب میشه آیا نحوه نصب odbc و freetds فرق میکنه؟؟
سرور 23 بیتی هست
نظر
هنوز هیچ نظری ارسال نشده است!
  • صفحه :
  • 1


هنوز به این موضوع پاسخی داده نشده است

دسته بندی ها

سیستم های تلفنی کدباز
  1. 107 پست
  2. 0 زیرمجموعه
سیسکو Cisco
  1. 61 پست
  2. 0 زیرمجموعه
سیستم تلفنی FreePBX
  1. 48 پست
  2. 0 زیرمجموعه
شبکه و زیرساخت
  1. 65 پست
  2. 0 زیرمجموعه
تازه واردین دنیای ویپ
  1. 927 پست
  2. 0 زیرمجموعه