-
آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
با سلام خدمت اساتید گرامی.
اگر 1 جستجوی کوچیک توی اینترنت داشته باشین میبینید که یکی از مبهم ترین و بزرگترین مشکلات برنامه نویس ها تلفن گویا هست.چونکه یک مرجع فارسی خوب در این موضوع وجود نداره ،اکثر این بحث ها یا به نتیجه نرسیده و یا از بحث اصلی منحرف شده.به همین خاطر من تصمیم گرفتم که یک تاپیک اختصاصی برای این موضوع بزنم و تمام تجربیاتی که در طی 1 سال از نوشتن تلفن گویا که بصورت حرفه ای داره تمامی کارهای متداول و مورد نیاز رو انجام میده، بدست آوردم رو در اختیار دوستان بگذارم تا شاید خیلی از مشکلات برطرف بشه.
با توجه به اینکه میخام واقعا برای اینکار وقت بزارم ،قبل از شروع باید ببینم متقاضی این کار در اینجا چند نفر هستن تا ببینم آیا واقعا ارزش داره که وقت بزارم یا نه.بخاطر همین کسانیکه واقعا میخان بنده اینکارو انجام بدن و مشارکت انجام میدن ، با زدن تشکر آمادگی خودشونو اعلام کنن.زمانیکه تعداد تشکرها به 20 برسه من شروع میکنم.لطفا پست هم نگذارید تا شروع کار.منتظر هستم.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
نقل قول:
نوشته شده توسط
ali_habibi1384
توي اين چند سال اينقدر از اين تاپيكهاي كاربا تلفن گويا ديدم كه وقتي ميبينم يكي تاپيك زده كلا حالم يه جوري ميشه! معمولا هم پس از يه مدت مشخص يه خيرخواه پيدا ميشه و ميخواد مفتي به همه آموزش بده.و اولش هم ميگه هيچكدوم به نتيجه نرسيده و من به نتيجه ميرسونمش.مثل همين باباي صاحب تاپيك. تعجب من در اينجاست كه چطور توي اين چند ماه تاپيك بدون محتواي علمي مثل اين همچنان وجود داره! پس مديران سايت كجاند؟؟؟؟؟
پروژه پاياني دوره كارشناسي من (5-6سال پيش) نرم افزار ديسپيجينگ پخش صوت پالايشگاه گاز خانگيران سرخس (هاشمي نژاد)بود كه تلفن گويا بخش كوچكي از اون سيستم بود و ميدونم اونقدر پيچيدگي داره كه كسي كه كار كرده اطلاعاتش رو رايگان در اختيار كس و يا كساني قرار نميده. جدا از بخش نرم افزاري قسمتهاي سخت افزاري زياد و آشنايي كامل با مودمها ATCommand , توابع Tapi كه مرجع فارسي هيچكدام موجود نيست و با يه فايل زبان اصلي بايد كار خودتو راه بندازي. با توجه به موارد فوق با ديدن موضوع آموزش تلفن گويا دل خودتونو صابون نزنيد.:لبخند:
اگر هدف اين آقا واقعا اين بود كه بدونه چند نفر مشتاقند بجاي جمع كردن تشكر يه نظرسنجي با بله و خير درست ميكرد. . .
مهندس،کار با KDTELE خیلی سخت نیست،
فقط کافیه رفرنس مربوطه رو به پروژه تون اضافه کنید بعد از اون ابتدا باید دیوایس مربوطه رو انتخاب کنید و اون رو Active کنید :
Int32 lNum;
string lName = "";
for (lNum = 0; lNum < axKDPhone1.NumberOfLines - 1; lNum++)
{
axKDPhone1.GetLineName(lNum, ref lName);
if(lName!=null)
{
cbDeviceList.Items.Add(lName);
}
}
مثلا توی کد بالا لیست تمام دیوایس ها رو توی یه کمبو باکس اضافه می کنیم.
برای اکتیو کردن دیوایس انتخاب شده :
Int32 er = axKDPhone1.LineActive(cbDeviceList.SelectedIndex, true);
و بعد با کد زیر شماره رو می گیریم :
axKDPhone1.DialNumber(txtNumber.Text, 0);
بقیه اش با خودتون...کار کردن با یه سری Eventه مثلا توی رخداد OnCallState می تونیم Stateها رو چک کنیم مثلا یکی از Stateها مشخص میکنه وقتی بعد از شماره گیری تماس برقرار شد یه فایل صوتی رو پخش کنه : (با یه Switch Case وضعیت را چک می کنیم مثلا برای حالت زیر)
switch (e.callState)
{
case KDTele.TxCallState.csConnected:
{
tsMessage.Text = "ارتباط برقرار شد خط آماده مکالمه می باشد.";
Int32 lvRet = axKDVoice1.Play(axKDPhone1.WavePlayID, @"D:\CallKD\01-Rolling-in-the-Deep.wav", 0, -1);
if (lvRet != 0)
{
axKDPhone1.Hangup();
MessageBox.Show("Error: " + axKDPhone1.GetErrorMsg(lvRet), "Attention");
}
}
break;
}
-
1 ضمیمه
قسمت 1) شروع کار
با سلام خدمت همگی.بدون توجه به هیچ موضوع و نظر اضافی و بخاطر همه کسایی که پیغام زدن هر چیزی رو که بلدم در این زمینه از امروز شروع میکنم به گذاشتن.امیدوارم مفید واقع بشه.
قبل از هرچیز لازم هست که مقدمات کار روبگم تا مشکلی پیش نیاد.پس از تست و بررسی چندین کامپوننت مختلف موجود دررابطه با تلفن گویا و فکس ، باتوجه به محدودیت هایی که کاربراین ایرانی برای دسترسی به کامپوننت های خارجی دارن ، بنده دو کامپوننت Tapiex ActiveX v 3.6.1 برای تلفن گویا و KDTele 3.5 رو انتخاب کردم.هردوی این کانپوننت رو در انتهای این پست میزارم واسه دانلود.
زبان برنامه نویسی هم C# هست در VS2008.
ابتدا این دو کامپوننت رو نصب و مراحل ک . ر . ک کردن اونها رو انجام بدید.فقط توجه کنید که آنتی ویروس غیرفعال باشه.سپس یه پروژه جدید در VS2008 ایجاد کرده و دو فایل TAPIExCt.dll و KDTele.ocx v رو از طریق Add refrence ، به solution اضافه کنید.سپس در منوی ToolBox روی یکی از تب ها کلیک راست کرده و گزینه Choose Items رو بزنید.سپس از طریق تب Com Components ، کامپوننتهای مربوط به KDTele ... Cotrol که 8 نتا میباشند و Tapeix Class رو به تولبار اضافه کنید.پس از اضافه کردن آیکن های زیر به ToolBax اضافه میشن.
ضمیمه 93375
پیشنهاد من اینه که ابتدا از کامپوننت Tapiex که برای تلفن گویا هست شروع کنیم.
برای این کار Tapeix Class رو مانند ابزارهای دیگه روی فرم خود بندازید و نام اون رو به tapiex_com تغییر داده و Visible اون رو هم False کنید.تا اینجا اگر مشکلی هست بگید تا بعدش بریم سراغ قسمت بعد.ممنئم از همگی استادان
دانلود Tapeix ActivX v3.6.1
دانلود KDTele3.5
-
قسمت 2) کار با مودم ها
اولین کاری که برای یک نرم افزار تلفن گویا باید انجام بگیرد ، تشخیص مودم های متصل شده به سیستم و آماده کردن آنها توسط نرم افزار برای پذیرش تماس ها میباشد.
در کامپوننت Tapiex ، یک متغیر به نام Lines وجود دارد که از آرایه ای از جنس ITAPILine می باشد.
نکته : در کامپوننت Tapiex ActiveX تعداد 12 Interface وجود داره که مهمترین اونها عبارتند از :
1) ITAPICall : شامل متغیرها و متدهای مربوط به یک تماس روی یک خط(مودم) میباشد.بوسیله این شی مدیریت تماسها اعم از قبول تماس،رد تماس ، قطع کردن تماس ،پخش یک صوت برای تماس و هر چیزی که مربوط به یک نماس هست رو میشه انجام داد.در واقع این مهمترین کلاس موجود در Tapiex هست که تماس ها رو مدیریت میکنه.
2) ITAPILine : شامل متغیرها و متدهای مربوط به یک خط یا همون مودم میباشد.بوسیله این کلاس میتوان نام مودم های شناخته شده در سیستم،باز کردن مودم برای تماس،گرفتن شماره و بستن یک مودم را انجام داد.
3) ILineCaps : این interface فقط دارای یک سری توابع هست که قابلیت های یک خط را به ما میدهد.
لازم به ذکر می باشد که کنترل Tapiex رو که روی فرم انداختیم(که در اینجا نام آن tapiex_com می باشد) خود شامل متغیرهایی از نوع "آرایه ای از interface های موجود" می باشد که از آنها در صورت لزوم می توان استفاده کرد.
برای شروع کار با Tapiex ، ابتدا بایستی تابع initialize() را صدا بزنیم تا کنترل Tapiex، اطلاعات اولیه را بارگزاری کند.
برای این کار کافیست کد زیر را در Form_load خود بنویسیم :
tapiex_com.initialize()
با صدا زدن این تابع ، خود Tapiex لیست مودم های متصل به دستگاه را پیدا کرده و در متغیر Lines میریزد.این دستگاه ها را بوسیله یک حلقه بصورت زیر می توان در یک ComboBox با نام TPLines_cb قرار داد.(لطفا شرطهایی که گذاشته شده را بگذارید تا قطعات سخت افزاری را نشان دهد.)
ITAPILine tpline;
foreach (ITAPILine tempLoopVar_tpline in tapiex_com.Lines)
{
tpline = tempLoopVar_tpline;
if ((tpline.Caps.Media_Modes & LINEMEDIAMODE.MEDIAMODE_INTERACTIVEVOICE) > 0 || (tpline.Caps.Media_Modes & LINEMEDIAMODE.MEDIAMODE_AUTOMATEDVOICE) > 0)
{
if (tpline.DeviceName != "IPCONF LINE" && tpline.DeviceName != "H323 Line")
{
TPLines_cb.Items.Add(tpline.DeviceName);
}
}
}
حال شما نام تمامی دستگاه ها را در یک لیست باکس قرار داده اید.برای اینکه یک مودم را آماده برای تماس کنیم ، بایستی به اصطلاح آن مودم را باز کنیم.برای این کار بایستی دستگاه انتخاب شده را پیدا کرده و آنرا در یک متغیر از نوع ITAPILine ریخته و سپس تابع open را صدا بزنیم به شکل زیر :
private ITAPILine find_line(string p)
{
for (int i = 0; i < tapiex_com.Lines.Count; i++)
if (tapeix_com.Lines.Item(i).Name == p)
return tapiex_com.Lines.Item(i);
return null;
}
ITAPILine line = find_line(TPLines_cb.SelectedItem.ToString());
if (!line.Opened)
{
if (line.Open())
messagebox.show("line is open");
{
در کد بالا ابتدا تابع find_line صدا زده می شود تا با توجه به نام دستگاه انتخاب شده ، line مربوط به آن را برگرداند.این متد یک رشته را دریافت کرده و یک متغیر از نوع ITAPILine را برمی گرداند.
بعد از این ابتده بوسیله متغیر opend چک می کنیم آیا این خط قبلا باز شده است یا نه.اگر یاز نشده باشد تابع open را صدا زده و خط را باز می کنیم.تابع open هیچ متغیری را نمیگیرد و یک متغیر boolean را برمیگرداند.بدین ترتیب ما یک خط یا همان مودم را آماده دریافت تماس کرده ایم.
متغیر opend از کلاس ITAPILine : چک میکند که آیا شی مربوطه از کلاس ITAPILine (که در واقع همان مودم هست) باز شده یا نه.اگر باز باشد True برمیگرداند.
تابع open از کلاس ITAPILine: شی مربوط به کلاس ITAPILine را (که همان مودم هست) باز و آماده تماس میکند.اگر با موفقیت باز شود ، true بر میگرداند.
به همین ترتیب تابع close یک خط را می بندد.
تست کنید اگر مشکلی بود درخدمتم.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
نقل قول:
نوشته شده توسط
AmirGhasemi
آقا حله
تورا خدا ادامه بده
به حرف هاي مايوس كننده ديگران هم توجه نكن! هر چند بنده براي حرف همه دوستان ارزش قائلم اما شما كارت را ادامه بده! با سرعت بيشتري هم ادامه بده!
من خودم خيلي وقته دنبال اموزش خوب تلفن گويا هستم!!!
راستي رد مورد كارت هاي IVRچي؟ در مورد اونها هم مطلب داري؟
آقا ما هيچ جا نميريم همين جا هستيم!
ما منتظر پست بعديش هستيم!
چشم.اومدم که ادامه بدم.در مورد مودم های ivr ، من خدم شخصا با 3 نوع مودم کار کردم و هرجارفتم یکی از اینها یا هر3 جواب داده :
1) ُSmartLink 56k voice modem که با نام تجاری elife هست تو بازار.
2)FaxIntel 2 chip
3) Alfex
اینها همه internal هستند.مودم External هم فقط مودم های مارک Dell جواب میده.مدل دقیقشو نمیدونم الان.
ولی همه این 3 تا روی خط های شیراز و بندرعباس که من کار کردم جواب داده.قیمتی هم نداره.2 3 تومن بیشتر نیس.البته میگم من این مودم ها رو در شیراز میگم.توی شهر شما نمیدونم
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
در مورد مودم هاي IVR !!
اين كلمه IVR كه برند نيست داداش من!!! IVR نسل جديد از مودمهاست كه قابليت تعامل با ديتاهاي روي خط دارد!! همين سيستم هاي تلفن گويا كه با استفاده از دكمه هاي زده شده توسط كاربر هزار تا كار مي كنه!
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
نقل قول:
نوشته شده توسط
AmirGhasemi
در مورد مودم هاي IVR !!
اين كلمه IVR كه برند نيست داداش من!!! IVR نسل جديد از مودمهاست كه قابليت تعامل با ديتاهاي روي خط دارد!! همين سيستم هاي تلفن گويا كه با استفاده از دكمه هاي زده شده توسط كاربر هزار تا كار مي كنه!
در مورد IVR .
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام.ببخشید چند روز به علت درگذشت استاد برنامه نویسیم نبودم.ایشالا از شنبه دوباره بحث رو ادامه میدم.
واسه PDF کردن هم چشم.انشاالله تموم که شد با نظر خود دوستان مطالب رو به صورت PDF می کنم.
و اما درباره KDTele که جناب Sal_64 پرسیدن ،باید خدمت ایشون عرض کنم که من اینجا از کامپوننت KDTele برای ارسال و دریافت فکس استفاده میکنم.به همین خاطر ابتدا مباحث مربوط به تلفن گویا با Tapiex رو میگم بعدش انشاالله میرم سراغ KDTele و مباحث اون رو برای ارسال و دریافت فکس رو میزارم.
من چون چن روز نبودم این پستهای پاک شده رو نخوندم و نمیدونم چیه.ولی من به شخصه کاری به هیچ کس ندارم و کارم رو ادامه میدم.ممنون از همگی.
-
قسمت 3 ) روند کاری در tapiex و مفاهیم ،توابع و رویدادهای کلیدی
با سلام دوباره.
تمامی کار با tapiex در کار با رویدادهای آن خلاصه میشود.رویدادهای تاپیکس دو پارامتر دارند:
1) param0 که از نوع object میباشد.این پارامتر نقش خاصی در رویدادها ندارد.
2)param1. این پارامتر برای هر رویداد، از نوع آن رویداد میباشد.این پارامتر اصلی ترین نقش را در رویدادهای تاپیکس بازی میکند.مهمترین متغیر موجود در param1 ، متغیر m_call میباشد که از نوع ITapicall میباشد و تمامی اطلاعات مربوط به تماس وارد شده یا گرفته شده در آن قرار میگیرد و برای هر تماس مستقل میباشد.در جلسات بعدی بیشتر با توابع مربوط به m_call آشنا میشویم.
متغیر param1 در هر رویداد، مناسب با آن رویداد متغیر دیگری جز m_call دارد.بطور مثال در رویداد OnRing تعداد زنگها در متغیری با نام ringCount در param1 قرار میگیرد.
بطور کلی در تمامی رویدادهای تاپیکس با توابع موجود در param1.m_call کار خواهیم کرد.این پارامتر از نوع ITapiCall بوده و تمامی کارها اعم از برداشتن گوشی ، گرفتن شماره ، پخش صوت ، قطع کردن تماس و... بوسیله این پارامتر انجام خواهد شد.
همچنین m_call دارای 3 متغیر با نام User_Data1 ,User_Data2,User_Data3 میباشد که از نوع object میباشد.این 3 پارامتر برای آن قرار داده شده است ، که بعضی از اطلاعات مربوط به هر تماس که برنامه نویس تشخیص میدهد باید نگه داشته شود، را در این 3 متغیر قرار داده و در حالتی که چند تماس همزمان وارد شود،اطلاعات تماس ها با هم تداخل پیدا نکند.در ادامه با نحوه کار کردن با این متغیرها بیشتر آشنا میشوید.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
آقا جان سلام لینک این KDTELE رو یه جا بزارید ما هم برداریم یا تونستید ایمیل کنید bakhtiari@live.com
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
عزیز 1 کم دقت کنی توی پست شماره 3 لینک رو گذاشتم
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
امیدوارم حالت خوب باشه .مرسی که کمک میکنی و مطالب میذاری. راستش منظورم این بود که ادامه آموزش چی شد؟
اون ها که دانلود کامپوننت ها بودن.
دوست من شما نمونه برنامه داری بهم بدی که از kdtele استفاده شده باشه؟????????? اینجوری بهتر دم دستم می افته برنامه .
در ضمن Kdtele رو نمیشه دانلود کرد خراب لینکش.
شما چرا یه برنامه نوینویسی و تو نمونه برنامه ها اپلود کنی در این مورد؟
اینجوری بهتر نیست؟
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
لینک درسته !! من اشتباه کردم.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
لینکش درسته . من اشتیاه کردم.
-
خیلی ضروری
بازم سلام من انقدر خسته بودم لینک پست رو ندیدم دانلود کردم KDTELE و TAPIX رو فقط رفرنسی وجود داره که استفاده از رویداد ها و رخدادها و خصوصیات رو توضیح بده اصلاً نمی دونم بعد از اینکه مودم رو اکتیو کردم چکار کنم؟
پورت باز کنم --- ؟ ورودی بگیریم ----؟ یه توضیح بدید ممنون می شم
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام.یه کم سرم شلوغه.خلوت شد ادامه میدم.
وقتی که شما مودم را باز(اکتیو) کردی و خط رو بهش وصل کردی دیگه لازم نیس از لحاظ سخت افزاری کاری کنی.با متد dial شماره میگیری و با متد Answer هم جواب میدی.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام
لطف کنید یه فایل pdf درست کنید ممنون.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام اول تشکر کنم بابت کار قشنگ این دوستمون بابت اموزش های مفیدشون واقعا جای همچین تاپیکی خالی بود.
و اما سوالم فقط میخواستم از TAPIEx استفاده کنم آنتی ویروس هم غیر فعال هست. اما نمیدونم چرا TAPIEx به درستی کرک نشد !!! :متفکر: لطفا راهنماییم کنید.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام به همگی
من زیاد با KDTELE کار نکردم چون تو ویندوز 7 خوب کرک نمی شد!!!!!!!!!
و از TAPI استفاده کردم
اما مشکلم این بود که صدای طرف مقابل میومد اما صدای من اون سمت نمیرفت!!!
و در ضمن این نکته رو هم باید بگم تا اونجایی که من میدونم شرکت kDTELE تعطیل شده!!!!!!!!!!
اما شرکت TAPI هنوز سر پا هس و دارای ورژن های مختلفی هس
اگه نمونه کد از TAPI خواستی بگو تا بذارم
همواره موفق و پیروز باشید
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام و شب عالی همه بخیر
آقا نیکی و پرسش؟؟ نمونه کد TAPI را بذار تا همه ما دعاگوی شما باشیم
ما هیج جا نمی ریم همین جا هستیم تا شما هم آپلود بفرمایید نمونه کد را
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
آقا این تاپیک ادامه نداره؟ من لینک اول تاپیک اول را دانلود کردم ولی باز نمیشه
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
جناب samadblaj اگه توی ویندوز 7 استفاده میکنید ابتدا روی cmd کلیک راست کرده و run as administrator بزنید.سپس دستور زیر رو توی cmd تایپ کرده و ریستارت کنید تا توی 7 کار کنه
bcdedit.exe /set {current} nx AlwaysOff. این خطا هم احتمالا مربوط به دانلود نشدن کامل فایل زیپ هست.حتما همه چی رو به صورت run as administrator اجرا کنید.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
نقل قول:
جناب samadblaj اگه توی ویندوز 7 استفاده میکنید ابتدا روی cmd کلیک راست کرده و run as administrator بزنید.سپس دستور زیر رو توی cmd تایپ کرده و ریستارت کنید تا توی 7 کار کنه
bcdedit.exe /set {current} nx AlwaysOff. این خطا هم احتمالا مربوط به دانلود نشدن کامل فایل زیپ هست.حتما همه چی رو به صورت run as administrator اجرا کنید.
ممنونم ولی چقدر دیر !
میشه بگید این کد چیکار میکنه؟
bcdedit.exe /set {current} nx AlwaysOff.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام دوستان
من تونستم با متد OnDigitDetected یک منو ( فایل صوتی ) بر اساس انتخاب کلید کاربر پخش کنم .
مثلا :
منوی 1 : خوشامد گویی ==> برای ارتباط با مدیر کلید 1 برای گذاشتن پبام کلید 2 و برای لیست قیمت کلید 3 را فشار دهید .
من یک زیر منو دیگه برای لیست قیمت درست کردم که وقتی کاربر از منوی 1 کلید 3 رو زد به این منو هدایت بشه که خودش شامل 2 قسمت هست
زیر منو لیست قیمت : ==> جهت کسب لیست قیمت نرم افزار کلید 1 و جهت کسب لیست قیمت سخت افزار کلید 2 را فشار دهید .
مشکل اینجاست که نمدونم چطور تشخیص بدم که کاربر الان داخل زیر منو لیست قیمت هست و وقتی مثلا کلید 1 رو میزنه برای دریافت لیست قیمت نرم افزار قیمت رو بشنود . الان اگر کاربر تو منوی لیست قیمت باشه و کلید 1 رو برای شنیدن قیمت نرم افزار بزنه هدایت میشه به بخش ارتباط با مدیر( منوی 1)
این مشکل رو چطور میشه حل کرد ؟
ضمنا من از kdtele استفاده می کنم .
ممنون میشم راهنمایی کنید .
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
عجیبه
خیلی از اساتید در مورد آموزش و ساخت تلفن گویا داخل انجمن های سایت پست زدند . اما الان ....
حداقل بگید از کدوم متد باید استفاده کرد .
چند سال پیش اوضاع انجمن ها خیلی بهتر بود .
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
براي ترانسفر يك تماس با اين كامپوننت روي تلفن هاي سانترال كسي كار كرده ؟
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
نقل قول:
نوشته شده توسط
unforgiven
عجیبه
خیلی از اساتید در مورد آموزش و ساخت تلفن گویا داخل انجمن های سایت پست زدند . اما الان ....
حداقل بگید از کدوم متد باید استفاده کرد .
چند سال پیش اوضاع انجمن ها خیلی بهتر بود .
سلام میشه سورستون رو بذارید...
و بگید از چه مودمی استفاده میکنید...
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
دوستان به نظر میومد میتونست تاپیک خوبی بشه ولی متاسفانه ادامه پیدا نکرده (به نظر میاد)
از دیگر دوستان و اساتید خواهش میکنم در صورتی که در این زمینه اطلاعاتی دارند دریغ نکنند .
در ضمن لینک دانلود کامپوننتها به نظر میاد expire شده اگر دوستان این کامپوننت را با ک . ر . ک دارند لطف کنند اپلود نمایند
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
نقل قول:
سلام میشه سورستون رو بذارید...
و بگید از چه مودمی استفاده میکنید...
سلام
من از مودم Rockwell استفاده کردم البته این مودم Caller ID رو پشتیبانی نمیکنه , و البته من نیاز به این ویژگی مودم هم فعلا ندارم .
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
جناب جوکر عزیز شما میتونید منو راهنمایی کنید .
تا مشکل برنامه رو حل کنم .
نقل قول:
من تونستم با متد OnDigitDetected یک منو ( فایل صوتی ) بر اساس انتخاب کلید کاربر پخش کنم .
مثلا :
منوی 1 : خوشامد گویی ==> برای ارتباط با مدیر کلید 1 برای گذاشتن پبام کلید 2 و برای لیست قیمت کلید 3 را فشار دهید .
من یک زیر منو دیگه برای لیست قیمت درست کردم که وقتی کاربر از منوی 1 کلید 3 رو زد به این منو هدایت بشه که خودش شامل 2 قسمت هست
زیر منو لیست قیمت : ==> جهت کسب لیست قیمت نرم افزار کلید 1 و جهت کسب لیست قیمت سخت افزار کلید 2 را فشار دهید .
مشکل اینجاست که نمدونم چطور تشخیص بدم که کاربر الان داخل زیر منو لیست قیمت هست و وقتی مثلا کلید 1 رو میزنه برای دریافت لیست قیمت نرم افزار قیمت رو بشنود . الان اگر کاربر تو منوی لیست قیمت باشه و کلید 1 رو برای شنیدن قیمت نرم افزار بزنه هدایت میشه به بخش ارتباط با مدیر( منوی 1)
این مشکل رو چطور میشه حل کرد ؟
ضمنا من از kdtele استفاده می کنم .
کارم حسابی لنگ این قسمت مونده که چطور برنامه بین منو 1 و منو 2 و کلیدهای مربوط به اونها تفاوت قایل بشه .
ممنون میشم راهنمایی کنید
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
جناب unforgiven شما باید توی برنامتون یه سیستم درختی درست کنید.مثلا بگید اگر کلید 1 رو زده منوی 1 رو پخش کنه و اگر دوباره 1 رو زد زیر منوی مربوط به عملیات 1 رو پخش کنه.این برنامه نویسی هست و ربطی به تلفن گویا نداره.من توی سیستمم همین کارو کردم . کلید 1 1 با کلید 2 1 فرق میکنه.اونم توی سیستم درختی.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
جناب ali.bahrami من واقعا عذر میخام.به شدت گرفتارم.خیلی کم وقت میکنم بیام اینجا.و اما توضیحی در باره مودم :
برای سیستم های ارزونی که ما تهیه میکنیم نمیتونیم از مودم های تخصصی dialgic استفاده کنیم.بنابر این مجبوریم از مودم های ارزن و عادی استفاده کنیم.من به شخصه از 3 مودم smartlink و alfex و intel 3 chip استفاده میکنم.این مودم ها روی مادربوردها و سیستم های مختلف کارکرد مختلفی دارن.بطور مثال یه جا مودم smartlink عالی جواب داد ولی یه جای دیگه بعد از 1 زنگ دیگه کار نمیکرد.بعضی از امکانات مثل idcaller هم به خطوط مخابرات بستگی داره.ولی من به طور کلی مودم smartlink رو پیشنهاد میدم.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
برای ارسال داخلی هم کد برای این 2 تا کامپوننت به صورت زیر هست.با توجه به مودم و سانترال ممکنه جواب بده یا نده
e.m_Call.GenerateDTMF("!", TAPI_DIGITMODE.DIGITMODE_DTMF);
System.Threading.Thread.Sleep(1000);
e.m_Call.GenerateDTMF(dakheli, TAPI_DIGITMODE.DIGITMODE_DTMF);
System.Threading.Thread.Sleep(1000);
e.m_Call.Drop();
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
جناب kimm66 سلام
من در پست بالایی عرض کرده بودم که روند ساخت منو را انجام داده بودم و فقط می خواستم زیر منو ها را تشخیص بدم که اون هم تونستم با ایجاد مراحل مختلف انجام بدم . و البته می دونستم که این کار باید با برنامه نویسی انجام شود . به هر حال ممنون که پاسخ دادید .
نقل قول:
جناب unforgiven شما باید توی برنامتون یه سیستم درختی درست کنید.مثلا بگید اگر کلید 1 رو زده منوی 1 رو پخش کنه و اگر دوباره 1 رو زد زیر منوی مربوط به عملیات 1 رو پخش کنه.این برنامه نویسی هست و ربطی به تلفن گویا نداره.من توی سیستمم همین کارو کردم . کلید 1 1 با کلید 2 1 فرق میکنه.اونم توی سیستم درختی.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
ببخشين دير پست شما را ديدم
ساده هست ، شما تمام كليدهاي دريافتي از كاربر را به يك رشته عددي تبديل كن و در يك متغيير عمومي قرار بده
اگر اين رشته برابر بود با 1 فلان پيغام يا فلان كار را انجام بده
حالا اگه شخص اول زد كليد 1 تا اينجا اون رشته برابر هست فقط با 1
بعد كاربر از زير منو 1 قراره مثلا شماره 5 را اتخاب كنه و ميزنه كليد 5 را
حالا شما اين ورودي را به رشته قبلي اضافه ميكني كه مقدار رشته ميشه 15
خب راحت شده نه ؟ الان با يك پردازش متن ساده ميتوني ما به ازاء هر مقدار در رشته ( كه از يك case هم اگه نوعشو عددي بگيري ) به راحتي ميتوني براي تصميم گيري براي انجام فعاليت خاص ( صدا زدن يك فانكشن يا پروسيجر)استفاده كني
نقل قول:
برای ارسال داخلی هم کد برای این 2 تا کامپوننت به صورت زیر هست.با توجه به مودم و سانترال ممکنه جواب بده یا نده
اين مقدار ! همون مشابه مقدار flash هست روي گوشي ، راستش تا الان به فكرم نرسيده بود تبديل به DTMF كدش بكنم
ممنون ، فردا برم يه تستي روي يه سانترال بزنم ، ايشالا كه جواب بده :قلب:
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام لطفا اگهسورسی نمونه کاری دارید بذارید تا ما هم استفاده کنیم من که خیلی وقته این مشکل رو دارم و نمیتونم و نمیدونم از کجا شروع کنم... :اشتباه:
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
جوکر جان سلام
عذر می خوام من یکم دیر به این پست سر زدم . مشکل مربوط به تشخیص زیر منو ها حل شد . ممنون
یه سوال دیگه هم دارم اگه محبت کنید جواب بدید .
وقتی من به صورت استاتیک از متغییر کلید ها استفاده می کنم کل برنامه درست کار میکنه . حالا من اومدم توی یه جدول فیلدی به نام key و level در نظر گرفتم و از اون برای مدیریت کلیدهای گوشی و مراحل استفاده کردم . حالا وقتی از همین جدول (فیلد key)به جای رشته کلید ثابت استفاده می کنم برنامه فقط منوی 1 رو پخش می کنه و بقیه کلیدها رو تشخیص نمیده .
مثلا من تو جدول دارم :
Level key
10 1
20 2
تو رویداد e.digit هم با یک سلکت گفتم اگر key برابر با 1 بود و level برابر با 10 بود این پیام یا دستور اجرا بشه . ولی فقط رکورد اولی اجرا میشه .
چطور می تونم این برنامه رو به صورت داینامیک تبدیل کنم ؟
نتونستم به برنامه بگم بیاد key و level ها رو از جدول بخونه و اگر شرط های هر کدام درست بود اون فانکشن عمل کنه .
راستی اگه کد ارسال به داخلی رو تست کردی و جواب داد لطفا اعلام کن .
متشکرم
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
كد ترانسفر در سيستم تلفن سانترال جواب داد :)
در مورد كد و سطح و اين حرفا ، ببين شما وقتي كليدي ميزني سمت نرم افزار فقط يك كليد نه مجموع كليدهايي كه تا قبلش زدي را دتكت ميكنه ، براي همين بايد از يك متغيير عمومي استفاده كني و ديتا را توش پشت سر هم بچيني و بر اساس هر كد رسيده از سمت ديگه ، كل دريافتي را يكبار پردازش كني ببيني برابر با چيه.
زياد سختش نكن ، خيلي راحته ، نميدونم چرا ميخواي بپيچونيش :)
مثلا همين چيزي كه الان نوشتي نيازي به دوتا فيلد اصلا نداري ، يكيش هم كافيه.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
جوکر عزیز بازم ممنون
خب من تغییراتی در برنامه دادم و با روشی که شما فرمودید level رو هم حذف کردم .
خوشحالم کدی که جناب Kimm66 گذاشتند درست کار کرد .
نقل قول:
e.m_Call.GenerateDTMF("!", TAPI_DIGITMODE.DIGITMODE_DTMF);
System.Threading.Thread.Sleep(1000);
e.m_Call.GenerateDTMF(dakheli, TAPI_DIGITMODE.DIGITMODE_DTMF);
System.Threading.Thread.Sleep(1000);
e.m_Call.Drop();
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
دوست خوب ممکن یکنمونه کوچک از کارت برای بقیه دوستان بزاری
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام خدمت اساتید.هر جا لازم بوده من تیکه کد گذاشتم.نمیدونم منظورتون چیه از کد؟هر جا لازم بوده گذاشتم.در رابطه با pdf هم باید بگم که وقت میخاد که من ندارم.ولی ایشالا حتما این کار رو در برنامم دارم.
جناب unforgive : مشکل شما فقط و فقط با پیاده سازی درختی حل میشه.یه جدول بگیرید مخصوص کلیدها و به هر کلید یک parent بدید.بعد هر وقت کلیدی فشار داده شد ، با توجه به پدرش متوجه بشید که مال کدوم قسمت هست.خیلی ساده هست.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
برنامه ارسال ودریافت فکس باkdteleدر سی شارپ میخوام
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
جناب Kimmm66 سلام
من قبلا از گرید به صورت Parent - child استفاده کرده بودم , تقریبا مشکلی هم نبود - اما بعدا به صورت درختی تبدیلش کردم که خیلی بهتر و راحت تر میشه کار کرد.
با پیاده سازی درختی تعریف منو ها و زیر منوها به خوبی انجام و مدیریت میشه .
به هر حال باز هم ممنون .
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
لطفا اگه میشه یه نمونه قرار بدید ببینیم چجور میتونیم "تماس ، قطع تماس ، دریافت... " رو داشته باشیم.
خیلی وقته دوست دام اینو یاد بگیرم :عصبانی++:
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
تماس گرفتن با tapiex
TAPICall call = call = line.MakeCall(number);
قطع تماس با tapiex
call.drop()
call از نوع itapicall هست.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام
kdtele تابعی داره که مدت سوکت رو تشخیص میده و تو نمونه مثال هاش هم هست . تو مثالش اگر در state ضبط پیام باشه و 3 ثانیه سوکت وجود داشته باشه این تابع فایر میشه و قطع تماس رو به دنبال داره .
Private Sub KDVoice1_OnSilenceDetected()
If vAutoAnswerState = aasRecordingMessage Then
KDVoice1.RecStop
End If
حالا من میخوام اگر کاربر بعد از خوندن منو ها بعد از مثلا همین 3 ثانیه هیچ کلیدی را انتخاب نکرد براش پیغامی پخش کنم .
این کد رو هم تو Ondigit نوشتم و هم تو OnSilenceDetected ولی چیزی رو تشخیص نمیده . تو همین OnSilenceDetected , رو Answerstate=aasPlayingPrompt گذاشتم ولی بازم کار نمیکنه .
در کجا و چطوری باید این کار رو انجام بدم ؟
متشکرم
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام.شما از تایمر استفاده کن.بدین صورت که پس از خوندن منو، یک event ریز میشه به یه همچین نامی : onplaybackcomplete.داخل این ایونت ، تایمر رو استارت کن.اگر توی این مدت کلیدی فشرده شد ، توی متد ondigitdetected ، تایمر رو استاپ کن.ولی اگر نه که ontick تایمر فایر میشه و شما پیغام بده.
-
نقل قول: آموزش کامل طراحی تلفن گویا با Tapiex و KDTele در سی شارپ
سلام جناب Kimm
متشکرم از بابت راهنمایی .روش خوبی هست از همین تایمر استفاده میکنم .