PDA

View Full Version : بهترین راه و طراحی سیستم تلفن گویا



مهدی رحیم زاده
چهارشنبه 13 آذر 1387, 19:23 عصر
سلام
من باید یک سیستم تلفن گویا طراحی کنم که این قابلیت ها رو داشته باشه :
1- بتونه شماره تلفن فرد تماس گیرنده رو تشخیص بده و بعد اونو ذخیره کنه .
بعد از برقراری تماس یک متن رو برای کاربر پخش کنه و در حین این کار منتظر زدن کلید های روی تلفن توسط فرد تماس گیرنده باشهو با زدن هر کلید بتونه اونو تشخیص بده حتی کلید های # و *
حالا من می دونم که برای این کار ها کامپوننت هست Kdetel , Tapiex ,Tapi حالا کدوم یکی از اینا بهترن برای این کار یا نه این کار رو با At Command ها انجام بدم بهتره .
در مورد CallerID هم یک مودمی که اونو ساپورت کنه و خودتون ازش استفاده کردین معرفی کنید ممنون میشم .

Esmail Solhkhah
دوشنبه 18 آذر 1387, 01:53 صبح
سلام
من قبلا با tapiex کار کردم و یه تلفن گویا نوشتم
به نظر من از بقیه بهتره ولی در مورد تشخیص شماره تلفن منم این مشکل رو داشتم
و متاسفانه جواب نگرفتم البته جسارتاً میدونید که تشخیص شماره تلفن به مرکز تلفن هم مربوطه
و تا اونجایی که من میدونم ما تو ایران دونوع سیستم آلمانی و چینی داریم که مال X سال پیشه
و به ندرت با بعضی مودمها میشه این کار رو کرد.
مثلا من با مودم زولتریکس اصل تو ارومیه جواب نگرفتم درحالی که همون مودم تو سلماس جواب میده.

seniamail
دوشنبه 18 آذر 1387, 10:34 صبح
اگر با پورت سریال ارتباط برقرار کنید میتونید شماره طرف رو بخونید
برای این کار از کامپوننت SerialPort میتونید استفاده کنید
بعد از اینکه پورت مودم را باز کردید برای آماده سازی مودم ،بسته به نوع آن، باید یکسری دستور به آن ارسال کنید
اگر جواب نگرفتید بگویید تا قسمتی از کد را قرار بدم

mehdi.mousavi
دوشنبه 18 آذر 1387, 11:18 صبح
سلام
من باید یک سیستم تلفن گویا طراحی کنم که این قابلیت ها رو داشته باشه : 1- بتونه شماره تلفن فرد تماس گیرنده رو تشخیص بده و بعد اونو ذخیره کنه. بعد از برقراری تماس یک متن رو برای کاربر پخش کنه و در حین این کار منتظر زدن کلید های روی تلفن توسط فرد تماس گیرنده باشهو با زدن هر کلید بتونه اونو تشخیص بده حتی کلید های # و * حالا من می دونم که برای این کار ها کامپوننت هست Kdetel , Tapiex ,Tapi حالا کدوم یکی از اینا بهترن برای این کار یا نه این کار رو با At Command ها انجام بدم بهتره. در مورد CallerID هم یک مودمی که اونو ساپورت کنه و خودتون ازش استفاده کردین معرفی کنید ممنون میشم .

سلام.
پیدا کردن Voice Modem ای که Caller ID رو هم پشتیبانی کنه و با پروتکلهای ارسال Caller ID سیستمهای سوئیچینگ ایران هم تطابق داشته باشه، کار واقعا دشواری هست. همونطور که esmail_Solhkhah هم گفتن، ممکنه مودم X روی خط Y بتونه Caller ID رو تشخیص بده، اما روی خط Z یه مرکز مخابراتی دیگه نتونه. تازه بحث خیلی فجیعتر از این حرفهاست، اما به همین که گفتم بسنده میکنم...

از طرف دیگه، ممکنه یه مودم روی یه خط خاص از سوئیچ X بتونه Caller ID رو تشخیص بده، اما روی یه خط دیگه از همون مرکز نتونه. اینجا دیگه باید SNR خط رو بررسی کرد و ...

اما اگر از همه این مسائل بگذریم، من این روش رو کاملا رد میکنم. منظورم طراحی یک IVR با استفاده از .NET Framework هستش! توی همچین کارهایی، هرگز برای طراحی Engine همچین سیستمی، سراغ .NET نباید رفت. .NET برای چنین کارهایی ساخته نشده، و بیشتر از اونکه منفعت به شما برسونه، بهتون ضرر خواهد زد. به خصوص اگر با InterOP و ... در .NET آشنا نباشید و ندونید که COM چی هستش و چطور کار میکنه.

تازه ممکنه بعدا به سرویسهایی مثل انتقال مکالمه و ... نیاز داشته باشید، سرویسهایی که توسط یه Call Center عرضه میشه. اینطور جاها، مجبورید به Direct Show و Filter Graph ها مسلط باشید تا بتونید مثلا Echo Cancellation رو پیاده سازی کنید، یا صوت رو جایی ذخیره کنید، یا پشت صدای گوینده آهنگی رو بصورت Live باهاش Mix کنید و ...

کنترل چنین مکانیزمهای پیچیده ای از طریق .NET غیر ممکنه هستش. شما با .NET نمیتونید یه DirectShow Filter ای بنویسید و اونو در Filter Graph اتون Insert کنید. تنها بخشی که میشه در چنین سیستمهایی با .NET انجام داد، بخشهای Monitoring هستش. برای این بخشها، میشه از .NET استفاده کرد، اما بازهم اولویت با CPP هستش.

این کار حتی هزینه نهایی رو بطرز قابل توجهی پایین میاره، چون خرید یه سیستمی که .NET رو بشه روش نصب کرد، هزینه بالاتری داره تا سیستمی که بشه روش یه Win32 APP رو اجرا کرد.

اما در هر حال، روش درست در کنترل Workflow سیستمهای IVR، استفاده از Voice XML، CCXML و ... هستش و نیازی به مجددا از نو طراحی کردن اونها نیست. در واقع در این سیستمها، شما میتونید توسط یه XML، که هرکسی میتونه با اندکی آموزش خودش بنویسه یا یه XML از پیش نوشته شده رو تغییر بده، نحوه کارکرد IVR رو بهش دیکته میکنید. اینکه خط رو بعد از چند باز زنگ خوردن بردار، چه پیامی رو برای تماس گیرنده پخش کن، پیام تماس گیرنده رو کجا ذخیره کن و و و ...

در واقع شما باید از یک Voice XML Interpreter استفاده کنید، و پردازش این XML استاندارد رو گردن اون بندازید. یعنی حتی نیاز نیست تا این بخش رو خودتون طراحی کنید.

پاورقی 1: شما باید در چنین سیستمهایی مساله رو خیلی خیلی فراتر از AT Command ها، یا استفاده از Component هایی که اسم بردید ببینید.
پاورقی 2: چیزهایی که توضیح دادم، به کارت سخت افزاری ای فراتر از یک مودم نیاز داره.

مهدی رحیم زاده
دوشنبه 18 آذر 1387, 13:21 عصر
اگر با پورت سریال ارتباط برقرار کنید میتونید شماره طرف رو بخونید
برای این کار از کامپوننت SerialPort میتونید استفاده کنید
بعد از اینکه پورت مودم را باز کردید برای آماده سازی مودم ،بسته به نوع آن، باید یکسری دستور به آن ارسال کنید
اگر جواب نگرفتید بگویید تا قسمتی از کد را قرار بدم
اگه نمونه کد بزارید واقعا ممنون میشم

Afshin160
دوشنبه 18 آذر 1387, 14:04 عصر
سلام ....
دوست عزيز من قبلا" يه تاپيك ايجاد كرده بودم كه در اون يه سري كامپوننت و نمونه كد هايي رو قرارداده بودم كه مديران سايت بعد از دادن 3 اخطار كلا" تاپيك را پاك كردن ... كه البته كار درستي كردن .. يه نمونه برنامه براوتون مي گذارم اميد وارم بدردت بخوره ...

**اما اول از همه بگم كه اين كد سورس را يك سري كلا بردار (البته از نظر من ) به همراه همون كامپوننت هاي معرف كه همه دارند به مبلغ 45 هزار تومان به يكسري بندگان خودا فروخته بودن ...**
راستي از آقاي mehdi6755 (http://barnamenevis.org/forum/member.php?u=41233) هم كه اطلاعات خوبي در اين زمينه دارند خواهش ميكنم يه تاپيكي آموزشي تحت اين عنوان ايجاد كنيد ...به هر حال فكر كنم تاپيك خوبي از آب در بياد ...
از دوست عزيز مون هم قاي mehdi6755 (http://barnamenevis.org/forum/member.php?u=41233) خواهش ميكنم نظرشون را بدن ..

راستشو بخوايد نشد بگذارم حجمش زياد بود ... براي همين لينك دانلود را گذاشتم

http://www.4shared.com/file/67615432/4cff15d0/Resturan.html?dirPwdVerified=4fed53f6

موفق باشيد .
افشين160

NewFoxStudent
دوشنبه 18 آذر 1387, 14:23 عصر
دوست عزیز برای دریافت کالرآی دی به این نکته توجه کنید که توی تمام سیستمهای مخابراتی کالر آی دی بین بوق اول و دوم ارسال میشه و هیچ ربطی به FSK یا DTMF بودنش هم نداره شما میتونی با استفاده از هر مودمی که فقط کالر آی دی رو ساپورت کنه شماره تماس گیرنده رو بدست بیاری
برای این کار هم راه های زیادی وجود داره یکی از این راه ها استفاده از کنترل Comm خوده ویندوزه
که شما با استفاده از این کنترل دایم خط رو چک میکنید به صورت استریم
هر وقت اطلاعاتی روی خط بود اون رو به صورت باینری میخونید
برای کار با مودمها هم این نکته مهم که هر مودم دستورات AT مربوط به خودش رو داره که برای دیدن نمونه هایی از این دستورات میتونید تو اینترنت عبارت Modem AT Command رو سرچ کنید
در صورت نیاز به اطلاعات بیشتر پیغام بزارید

NewFoxStudent
دوشنبه 18 آذر 1387, 14:33 عصر
به هر حال سیستم IVR با چیزی که شما در موردش سوال کردید خیلی فرق میکنه و این سیستم رو بدون کوچکترین مشکلی میتونید با دات نت اجرا کنید
در ادامه باید عرض کنم که در حال حاضر پیچیده ترین سیستمهای IVR برای سوئیچ های پیشرفته مایتل و پاناسونیک و .... همینطور سیستم های گویای مخصوص VOIP داره با دات نت اجرا میشه و حتی تلفنهای گویای قدیمی که با کارت های Dialogic و Donjin کار میکردند و با CPP نوشته شده بودند هم دارن به دات نت میشن

ashkan_gorg
دوشنبه 18 آذر 1387, 14:37 عصر
من قبلا چنین کارایی کردم جواب هم داده از مودم datashen استفاده کردم با کامپوننت exceletel که کارایی زیادی هم داشت

mehdi.mousavi
دوشنبه 18 آذر 1387, 14:58 عصر
راستي از آقاي mehdi6755 (http://barnamenevis.org/forum/member.php?u=41233) هم كه اطلاعات خوبي در اين زمينه دارند خواهش ميكنم يه تاپيكي آموزشي تحت اين عنوان ايجاد كنيد ...به هر حال فكر كنم تاپيك خوبي از آب در بياد ... از دوست عزيزمون هم آقاي mehdi6755 (http://barnamenevis.org/forum/member.php?u=41233) خواهش ميكنم نظرشون را بدن ..

سلام.
در مورد تاپیک آموزشی، متاسفانه فرصت چنین کاری رو ندارم. ضمن اینکه، من هرگز از C# برای چنین مقاصدی استفاده نمیکنم...

در مورد نرم افزاری که گذاشتید، باید خدمتتون عرض کنم که من از VB هیچ سررشته ای ندارم و چیزی راجع بهش نمیدونم. ضمن اینکه UI برنامه شما فارسی هستش و متاسفانه در اجرا هم چیزی متوجه نشدم چون فونتها درست نمایش داده نمیشه. ضمن اینکه من خیلی خیلی سخت گیرانه در مورد برنامه ها قضاوت میکنم، برای همین بهتره نظر من رو در این مورد جویا نشید.

پاورقی: برنامه ای که نام فرمهاش، Form1 و Form2 باشه، از نظر من یه شوخی بیشتر نیست. چه برسه هنگام اجرا، فونتها رو درست نشون نده یا run-time error 3265 رو بده! در واقع میخوام بگم که (با کمال احترام)، نظر مساعدی نسبت به نرم افزاری که گذاشتید ندارم.

mehdi.mousavi
دوشنبه 18 آذر 1387, 15:32 عصر
به هر حال سیستم IVR رو بدون کوچکترین مشکلی میتونید با دات نت اجرا کنید

توانایی یک مقوله هستش، انتخاب هوشمندانه یه مقوله دیگه! شما میتونید تو .NET و با استفاده از DirectX حتی Game تولید کنید. اما چند درصد از Game های تولید شده در دنیا از .NET استفاده میکنن؟ همینطور هستش برای سیستمهای سوئیچینگ، IVR و ... به نظر شما چرا سوئیچهای Siemens، NEC، Huwaii، Alcatel و ... همه محیطهای محدودی رو در اختیار Developer قرار میدن، اما پروتکلهای متفاوتی از جمله Telnet رو پشتیبانی میکنن؟ آیا نمیشد یه UI بهتری ساخت تا افرادی که در سالن دستگاهها کار میکنن اینقدر به اون Document های طبقه بندی شده مراجعه نکنن و براحتی بتونن یه پیش شماره رو Route کنن به یک مرکز دیگه؟ مگه نمیشه پروتکلهای SS7 و ... رو در .NET یا حتی Win32 اجرا کرد، پس چرا عموما اینها رو Embedded درست میکنن؟

برای هر کاری ابزاری وجود داره و برای کارهای مخابراتی من به شخصه، CPP رو به هر زبون دیگه ای ترجیح میدم. خواه محیط ویندوز باش، خواه لینوکس.

NewFoxStudent
چهارشنبه 20 آذر 1387, 10:58 صبح
دوست عزیز بنده نظر شما رو نقض نکردم
من فقط گفتم که میشه بدون مشکل در دات نت این سیستم رو اجرا کرد و این اتفاق هم در حال حاضر افتاده و طبق تجربه شخصی گفتم که میشه
نرم افزار تلفن گویایی که بدون مشکل و سازگار با تمامی سخت افزار های تلفنی موجود در حال کاره و کار گروه نرم افزاری تتسا هست تقریبا 10 سال پیش با CPP نوشته شده و هنوز هم داره پشتیبانی میشه
بنا براین من از این نکته اطلاع دارم که CPP کارآیی زیادی در مورد کار با TAPI داره
اما قبول کنید که با دات نت هم میشه با همین قدرت پیچیده ترین سیستمهای IVR رو طراحی کرد

funfullson
چهارشنبه 16 بهمن 1387, 13:35 عصر
سلام دوستان
اگه یه سورس مناسب گیر آوردین من رو هم خبر کنین ممنون می شم.
آخه منم به یک چنین برنامه ای نیاز دارم ولی نه با سطح می خوام یه پیام صوتی رو به اشخاص داخل db برنامه بدم .البته اضطراری هم هست.در کل اگه راهنماییم کنین ممنون می شم.

alireza_ap
پنج شنبه 17 بهمن 1387, 09:37 صبح
با تشکر از همه دوستان و اساتید

سوالی داشتم که فکر می کنم ایجا میشه مطرحش کرد

من در نظر دارم چنین کاری رو با موبایل ( مودم های GSM ) انجام بدم

آیا با همین کامپوننت ها یا توابعی که برای Fax Modem دوستان دارن کار می کنن ، می شه جواب گرفت یا نه ؟

پیشاپیش ممنون

mjelecom
چهارشنبه 23 بهمن 1387, 03:30 صبح
سلام
دوست عزیز با KDTELE به سادگی امکان پذیره. البته من تو VB6 این کار رو کردم. خیلی ساده هم جواب داد. کارای فراتر از این رو هم میتونی انجام بدی. اما در مورد IDCaller حق با دوستانه. اگر بتونی مودمی پیدا کنی که هم DTMF و هم FSK رو جواب بده، به احتمال قوی تو شهرهای بزرگ به مشکل خاصی بر نمی خوری. چرا که تو ایران مرسومه که یه سیستم جدید رو که میارن میبرن تو شهرهای بزرگ نصب میکنن و سیستمهای داغونو می برن تو شهرهای رده پایین تر. اگه برنامت تو شهرهای بزرگ می خواد کارکنه با مودم جواب می گیری(انشاالله).
برای اینجور نرم افزارها معمولا موقع فروش شرط میزارن که اگر فلان مشکلها توی مخابرات وجود داشت، چون ایراد از برنامه نیست برنامه نویس مسئولیتی برعهده نمی گیره و از زیرش در میرن.
اما اگر واقعا می خوای برای حل مسئلت تا آخر دنیا بری. راه حل اینه که یه واسط سخت افزاری بسازی با آی سی های مخصوصش (تو بازار موجوده) و اونو به برنامه ات لینک کنی. اینجوری هیچ جا کارت لنگ نمیشه.مگر اینکه خود مخابرات اصلا شماره تماس گیرنده رو روی خط قرار نده که این دیگه یه قضیه دیگست.

sohrab o
شنبه 31 مرداد 1388, 15:04 عصر
میشه یه نمونه سورس با همون vb بزاری

HAMRAHSOFT.IR
پنج شنبه 15 بهمن 1388, 19:47 عصر
سلام
من قبلا با tapiex کار کردم و یه تلفن گویا نوشتم
به نظر من از بقیه بهتره ولی در مورد تشخیص شماره تلفن منم این مشکل رو داشتم
و متاسفانه جواب نگرفتم البته جسارتاً میدونید که تشخیص شماره تلفن به مرکز تلفن هم مربوطه
و تا اونجایی که من میدونم ما تو ایران دونوع سیستم آلمانی و چینی داریم که مال X سال پیشه
و به ندرت با بعضی مودمها میشه این کار رو کرد.
مثلا من با مودم زولتریکس اصل تو ارومیه جواب نگرفتم درحالی که همون مودم تو سلماس جواب میده.


اگه نمونه کوچیک دارید بزارید تا دوستان هم یاد بگیرن و هم استفاه کن (حتی مقاله هم باشه مفید می باشد)

ostovarit
چهارشنبه 23 تیر 1389, 13:46 عصر
استفاده از سخت افزار های کالر ایدی به نظر شما مناسب هست من صرفا میخوام شماره تماس گیرنده رو داشته باشم ؟
نظر شما چیه اگر بخوایم در زمان کمی به نتیجه برسیم وقت مطالعه همه مباحثی که نام بردید رو ندارم
خیلیاش رو هم اصلا نمیدونم چی هست
راه حل شما چیه ؟ سخت افزار های ایدی کالر جوابگو هست؟

zayens
چهارشنبه 23 تیر 1389, 13:55 عصر
دوست عزیز بد نیست به تاریخ تاپیک یه نگاهی بندازین

NeverFade62
یک شنبه 10 مرداد 1389, 11:47 صبح
با سلام خدمت دوستان
می خواستم ببینم که بعد از این همه مدت ، حالا چی؟
با کارتهای dialogic و SDK ی جدید که می توان به راحتی با دات نت برای آن برنامه نوشت ، حالا نظر دوستان چیه؟ هر کس بگه رو چه سیستمی با چه کارت و SDk ی کار می کنه ؟

sohrab o
پنج شنبه 28 مرداد 1389, 13:04 عصر
نوع سیستم عامل مهم نیست؟؟

saghez
یک شنبه 23 آبان 1389, 15:06 عصر
كل اين تاپيك را خواندم اما ظاهرا كسي هيچ نوع راه حلي ارائه نداده و يا نميداند از كجا و چطور بايد شروع كرد.
ايا كسي واقعا بصورت عملي چيزي مانند يك تلفن گويا طراحي كرده و يا سعي كرده با tapi با vb.net كار انجام دهد يا خير
حالا callerid را اگر بي خيال شويم و تنها بخواهيم براي مخاطب يا گيرنده فايلي صوتي را پخش كنيم تكليف چيست؟

modern_amin
پنج شنبه 07 مهر 1390, 11:26 صبح
توانایی یک مقوله هستش، انتخاب هوشمندانه یه مقوله دیگه! شما میتونید تو .NET و با استفاده از DirectX حتی Game تولید کنید. اما چند درصد از Game های تولید شده در دنیا از .NET استفاده میکنن؟ همینطور هستش برای سیستمهای سوئیچینگ، IVR و ... به نظر شما چرا سوئیچهای Siemens، NEC، Huwaii، Alcatel و ... همه محیطهای محدودی رو در اختیار Developer قرار میدن، اما پروتکلهای متفاوتی از جمله Telnet رو پشتیبانی میکنن؟ آیا نمیشد یه UI بهتری ساخت تا افرادی که در سالن دستگاهها کار میکنن اینقدر به اون Document های طبقه بندی شده مراجعه نکنن و براحتی بتونن یه پیش شماره رو Route کنن به یک مرکز دیگه؟ مگه نمیشه پروتکلهای SS7 و ... رو در .NET یا حتی Win32 اجرا کرد، پس چرا عموما اینها رو Embedded درست میکنن؟

برای هر کاری ابزاری وجود داره و برای کارهای مخابراتی من به شخصه، CPP رو به هر زبون دیگه ای ترجیح میدم. خواه محیط ویندوز باش، خواه لینوکس.

دوست عزیز
من تا حدود زیادی با صحبتهای شما موافقم و ازون استفاده کردم
ولی اگه همه بخان یک راه رو برن علم امروز تا این حد پیشرفت نمیکرد
یادت باشه همیشه ممکنه که یک چیز کوچیک و بدرد نخور یا حتی بی ربط باعث فکر بزرگ تر بشه