PDA

View Full Version : گفتگو: در مورد طراحی تلفن گویا و استفاده از کامپوننت ها



dark-man
پنج شنبه 10 بهمن 1387, 17:49 عصر
با سلام و خسته نباشید خدمت دوستان .
من مدتی هست که در حال طراحی و نوشتن یک نرم افزار تلفن گویا متفاوت با نرم افزارهای متداول در بازار هستم . به دلیل نوع خواسته من از نرم افزار جستجوهای زیادی انجام دادم هم در سایت برنامه نویس و هم در اینترنت . نتایجی هم به دست اومد که متاسفانه هیچکدام از نیازهای حتی معمولی رو هم تحت پوشش قرار نمی داد . در جستجوها به مواردی برخوردم نظیر استفاده از کامپوننت ها و استفاده از api ها که تمام یا بهتره بگم بیشتر مطالب در مورد زبان دلفی بود و کمتر یا اصلا" صحبتی در مورد دات نت ها و نحوه استفاده ازش نبود . این تاپیک رو ایجاد کردم تا :
1- محلی برای گفتگو در این زمینه باشه و دوستان اطلاعات خودشون رو در اینجا قرار بدن
2- بتونم بهترین راه رو برای طراحی و نوشتن این برنامه انتخاب کنم
3 - منبع و مرجعی برای مراجعات سایر دوستان باشه تا مثل من دچار سر در گمی نشن

از تمامی دوستان عزیز خواهش می کنم فقط و فقط در زمینه مورد گفتگو در این تاپیک مطلب بدن .
پیشاپیش از همکاری و مساعدت همه شما عزیزان سپاسگذارم

accpascal
پنج شنبه 10 بهمن 1387, 19:14 عصر
من با اینکه علاقه مندی ام به دلفی می باشد ولی در این زمینه قبلا مدتی کارکردم و برنامه کوچکی هم نوشته ام که بعلت کمی میزان تبحر در #C نیمه کاره تعطیل شد برای یادگیری و ادامه پروژه خودم و نیز در دسترس قراردادن دانسته هایم در خدمتم
برای شروع من از Tapi3 استفاده کرده ام

mohsen_metn
پنج شنبه 10 بهمن 1387, 19:45 عصر
سلام
ضمن تشکر از دوستان برای راه اندازی این تایپیک
من در سایت زیر مطالب خوبی دیدم. برای شروع بد نیست
http://www.toptapi.com/

dark-man
پنج شنبه 10 بهمن 1387, 20:16 عصر
کامپوننت های مختلفی در اینترنت معرفی شده . ممنون از دوستان که اعلام آمادگی کردند برای اینکه راحت تر بشه بحث رو ادامه داد پیشنهاد می کنم که بیشتر روی نمونه کد ها و سورسها در سی شارپ کار بشه بطور مثال اگه کسی فرضا" کامپوننت KDtele یا tapi که دوستمون معرفی کردند دانلود کرد و خواست استفاده کنه بتونه از نمونه کد ها و راهنماهائی که اینجا هست استفاده کنه . می تونیم در مورد این پیشنهاد صحبت کنیم . نظر شما چیه ؟

dark-man
پنج شنبه 10 بهمن 1387, 20:20 عصر
درخواست دیگه ای که از همه دوستان عزیز دارم اینه که تلاش کنیم این مسئله رو بلاخره به سرانجام برسونیم تا از این شلوغی در بیاد

accpascal
پنج شنبه 10 بهمن 1387, 20:36 عصر
درخواست دیگه ای که از همه دوستان عزیز دارم اینه که تلاش کنیم این مسئله رو بلاخره به سرانجام برسونیم تا از این شلوغی در بیاد
صد در صد موافقم
خیلی از تایپیکه با حاشیه روی به نتیجه نمی رسه
من برای شروع همانگونه که گفتم Tapi3 را پیشنهاد می کنم زیرا اولا help قوی و نمونه سورس کد در vs2008 و vs2005 و msdn داردو نیاز به دانلود چیز خاصی نیست

dark-man
پنج شنبه 10 بهمن 1387, 20:39 عصر
خب پس لطف کنید تجربه ای که در این زمینه دارد رو در همین تاپیک بنویسید ( البته اگه از نظر خودتون اشکالی نداره ) اینجوری با tapi3 بیشتر آشنا میشیم

dark-man
پنج شنبه 10 بهمن 1387, 20:41 عصر
ترجیحا" اگه لینک دانلودی هم داره ذکر کنید

dark-man
پنج شنبه 10 بهمن 1387, 20:42 عصر
برای دوستانی که می خوان با کامپوننت TAPI کار کنن لینک دانلود رو میذارم


http://www.dlldump.com/download-dll-files_new.php/dllfiles/T/TAPI.DLL/3.10/download.html

accpascal
پنج شنبه 10 بهمن 1387, 21:15 عصر
برای شروعاولین کار شناسایی مدم های سیستم می باشدمن یک فرم ایجاد و یک کامبو برای شناسایی مودم ها در آن می گذارمضمنا یک کلاس برای عملیات مربوط به مودم و استفاده از Tapi3 طراحی می کنم که در پست بعدی لینک آن را می گذارمضمنا فایل پروژه اصلی را می توانید دانلود کنید

Sajjad.Aghapour
پنج شنبه 10 بهمن 1387, 22:36 عصر
من نمی دونم چرا مودمم کانکت نمی شه.هم با tapi و هم با kdtele امتحان کردم ولی فایده نداره.در حالیکه با AT-Command نتیجه گرفتم.......
به نظر شما مشکل از چیه ؟؟؟؟؟؟؟

accpascal
پنج شنبه 10 بهمن 1387, 23:27 عصر
من نمی دونم چرا مودمم کانکت نمی شه.هم با tapi و هم با kdtele امتحان کردم ولی فایده نداره.در حالیکه با AT-Command نتیجه گرفتم.......
به نظر شما مشکل از چیه ؟؟؟؟؟؟؟
چگونه از Tapi استفاده کردی

Sajjad.Aghapour
پنج شنبه 10 بهمن 1387, 23:30 عصر
دقیقا مثل کدهای شما.الان هم کد شما رو تست کردم.این هم جواب نداد............................

dark-man
جمعه 11 بهمن 1387, 17:18 عصر
دقیقا مثل کدهای شما.الان هم کد شما رو تست کردم.این هم جواب نداد............................

سلام . من نمونه کدی که جناب accpascal گذاشتن تست کردم . کد مشکلی نداشت . فقط یک مورد اون هم اینکه در کد زیر یک تغییر کوچیک بدهید احتمالا" مشکلتون حل خواهد شد .


private void Form1_Load(object sender, EventArgs e)
{
mainform1 = this;
messageBox.Text = "";

try
{
tapi = new TAPI(); << به جای این کد خط زیر رو جایگزین کنید >>
TAPI tapi = new TAPI();
ArrayList a = tapi.AvailableModems();
modemsCombo.Items.Clear();
foreach (string s in a)
modemsCombo.Items.Add(s);
}
catch
{
MessageBox.Show("Call Center can't loaded", "Successful", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}

dark-man
جمعه 11 بهمن 1387, 17:21 عصر
برای شروعاولین کار شناسایی مدم های سیستم می باشدمن یک فرم ایجاد و یک کامبو برای شناسایی مودم ها در آن می گذارمضمنا یک کلاس برای عملیات مربوط به مودم و استفاده از Tapi3 طراحی می کنم که در پست بعدی لینک آن را می گذارمضمنا فایل پروژه اصلی را می توانید دانلود کنید

جناب accpascal ممنون میشم در مورد توانائی های این dll کمی توضیح بدید . نظیر اینکه آیا این dll از چند خط هم پشتیبانی می کنه یا نه . ممنون میشم در یک پست امکانات و توانائی های این کامپوننت رو شرح بدید .

Sajjad.Aghapour
جمعه 11 بهمن 1387, 19:33 عصر
دوست عزیز من با کد هیچ مشکلی ندارم.گفتم که قبلا خودم کد زدم......
مشکل من نشناختن مودم هست.یعنی Active نمی شه......

accpascal
جمعه 11 بهمن 1387, 23:48 عصر
کدی که من نوشتم را اگر شما تست زده اید نباید جواب بدهد زیرا تابع AvailableModems()v را ندارید تابع فوق در کلاسی است که می توانید هم اکنون دانلود کنید
ضمنا برای استفاده از ای تابع باید در reference برنامه Tapi3 را import کنید
مرا ببخشید بعلت یک کار ضروری چند روزی نمی توانم در خدمتتان باشم امیدوارم در این مدت تایپیک فعال باشد چون من هنوز مواردی برای گفتن دارم

dark-man
یک شنبه 13 بهمن 1387, 09:46 صبح
کامپوننت های مختلفی برای کار با تلفن وجود داره که معروفترین اونا رو لیست می کنم :
البته به نظر من استفاده از API و AT Command خیلی بهتر از کامپوننت هست اما خب اونها هم برای استفاده طراحی شده اند .

1- KD TELE : این کامپوننت از معروفترین کامپوننت هاست و اینجور که به نظر می رسه با دلفی بیشتر از سایر زبانها سازگاره . من که هر چی گشتم یه نمونه درست و حسابی برای .NET پیدا نکردم.

2- TAPIEX : این یکی باز یه مقدار با .NET سازگارتر هست چون یه سری نمونه برای NET. داره گرچه بیشتر روی VB .NET مانور داده تا #C

3- EXCELE : مثل KD TELE با سازگاری بیشتر با NET. اما امکاناتی کمی کمتر از KD TELE .

دوستان اگه کامپوننت دیگه ای می شناسند لطف کنند اینجا بگن . اگه منابع مفیدی در مورد کامپوننت های معرفی شده هم وجود داره ممنون میشم به اطلاع برسونن .

saied_genius
یک شنبه 13 بهمن 1387, 16:38 عصر
با تشكر فراوان از دوستان به خاطر اين تاپيك بسيار مفيد.

ما همچنان منتظر پست هاي جديد و مفيد هستيم.

موفق باشيد.

accpascal
یک شنبه 13 بهمن 1387, 19:07 عصر
کامپوننت Tapi3 آخرین ورژن برای طراحی سیستمهای تلفن گویاست و طراحی آن بر اساس com می باشد و سیستمهای پیشرفته از آن استفاده می کنند و از کامپوننت های دات نت است
Tapi2 براس استفاده در زبان c می باشدکه در نوع خود جالب است

accpascal
یک شنبه 13 بهمن 1387, 19:27 عصر
دوست عزیز من با کد هیچ مشکلی ندارم.گفتم که قبلا خودم کد زدم......
مشکل من نشناختن مودم هست.یعنی Active نمی شه......
احتمالا درایور مودم درست نصب نشده است
توجه داشته باش windows بعض از مودم هارا بطور خودکار نصب می کند که در این سیستم شناسایی نمی شوند
کاری که باید بکنید بعد از نصب مودم توسط ویندوز خودتان درایو مربوطه را نصب کنید

accpascal
یک شنبه 13 بهمن 1387, 22:41 عصر
دوستان اگر فایل های ضمیمه شده را دانلود کرده و مشکلی ندارند بگویند تا امکان تبدیل فایل های فوق را برای استفاده از جند خط توضیح بدهم

farzaneh.sh
دوشنبه 14 بهمن 1387, 08:11 صبح
با سلام ...
من برای نوشتن تلفن گویا از کامپوننت استفاده نکردم و با خود Api ویندوز یعنی Tapi(Telephony Api) شروع کردم...البته با Vb.net شروع کردم به نوشتن...
یک سایت خیلی خوب هم که خیلی به من کمک کرد www.vbcity.com هست که توش پر از سورس کد Tapi این جور چیزا هست..به هر حال اگه کمکی از دستم بر میاد حتما کمک خواهم کرد..

dark-man
دوشنبه 14 بهمن 1387, 10:54 صبح
دوستان اگر فایل های ضمیمه شده را دانلود کرده و مشکلی ندارند بگویند تا امکان تبدیل فایل های فوق را برای استفاده از جند خط توضیح بدهم

سلام جناب accpascal . من نمونه کد های شما رو تست کردم و کامل جواب گرفتم . ممنون میشم در مورد پشتیبانی از چند خط توسط مودم dialogic نمونه کدی رو قرار بدید .

dark-man
دوشنبه 14 بهمن 1387, 10:58 صبح
با سلام ...
من برای نوشتن تلفن گویا از کامپوننت استفاده نکردم و با خود Api ویندوز یعنی Tapi(Telephony Api) شروع کردم...البته با Vb.net شروع کردم به نوشتن...
یک سایت خیلی خوب هم که خیلی به من کمک کرد www.vbcity.com (http://www.vbcity.com) هست که توش پر از سورس کد Tapi این جور چیزا هست..به هر حال اگه کمکی از دستم بر میاد حتما کمک خواهم کرد..

از راهنمائیتون ممنون . سایت خوبی بود . بررسی کردم . لطف کنید در زمینه در مورد روش استفاده از کمپوننت ها توضیح بدید یا نمونه کد بذارید تا این تاپیک به یه نتیجه ای برسه . مسلما" همه دوستان کامپوننت ها رو می شناسن اما روش کار و استفاده در سی شارپ یا زبانهای دیگه رو بلد نیستند . ممنون

farzaneh.sh
دوشنبه 14 بهمن 1387, 13:04 عصر
از راهنمائیتون ممنون . سایت خوبی بود . بررسی کردم . لطف کنید در زمینه در مورد روش استفاده از کمپوننت ها توضیح بدید یا نمونه کد بذارید تا این تاپیک به یه نتیجه ای برسه . مسلما" همه دوستان کامپوننت ها رو می شناسن اما روش کار و استفاده در سی شارپ یا زبانهای دیگه رو بلد نیستند . ممنون

با سلام...من متاسفانه با کامپوننت Tapi کار نکردم با خود Tapi3 که Api ویندوز هست کار کردم....
ممنون میشم اگه یکی از دوستان چگونگی کنترل خطوط با استفاده از Dialogic را بگن یا سورس کد را بگذارن...

accpascal
سه شنبه 15 بهمن 1387, 23:52 عصر
در مورد پشتیبانی از چند خط توسط مودم dialogic نمونه کدی رو قرار بدید .
من با مودم های dialogic کار نکردم وراستش نمی دونم چی هستند ولی در مورد همین مودم های معمولی خودمان ادامه برنامه ای را که سورسش را قرار دادم می گویم
برنامه ای که قبلا ارائی کردم مربوط به یک خط است ولی اگر توجه کرده باشید یک کلاس بنام Tapidll ارائه شده است که در داخل همان کلاس , کلاس modem قرار دارد حالا برای اینکه برنامه ما بتواند دو و یا چند مودم را ساپورت کند شما نیاز به یک فرم دارید که به تعداد مودم های شما فعال می گرددیعنی اینکه در مرحلع اول در آن کامبو باکس که مودم ها شناسایی می شوند با انتخاب هر مودم داخل کامبو و سپس دکمه Connect یک فرم که در بالا گفتم ران شده و یک شئی از نوع کلاس modem را ایجاد می کند
حالا شما به تعداد مودم هایتان از آن فرم بر روی صفحه باید داشته با شید
مطلب بعدی این است که رویداد winproc که در فرم اصلی بود را به فرم فوق انتقال بدهید بنابراینهر msg مربوط به هرخط تلفن به فرم مربوط به خودش ارجا می گردد
نمونه کد ها را بعدا ضمیمه خواهم کرد

#aliyari_C
چهارشنبه 16 بهمن 1387, 01:18 صبح
البته این کار زیاد سختی چون من توی یک شرکتی یک دستگاه دیدم که دارای تعداد زیادی پورت تلفن بود که از مهندسی که در آن بخش بود سوالی در مورد دستگاه کردم. که جواب داد این دستگاه برای سازمانهایی که خواهان تلفن داخلی هستن و کنترل خطهایشان مثلا اگر بخشی در سازمان گوشی را برنداشت تلفن به طور خودکار روی منشی تلفنی می رفت و پیغام ضبط شده برای طرف مورد نظر بر روی کامپیوتر طرف فرستاده می شد .
یا اگر طرف در حال صحبت با کسی بود دیگر تلفن بوق اشغال نمی زد بلکه به صحبت کننده این نکته را گوش زد می کرد که کسی پشت خط است.
البته این سیستم برای شرکتهایی خوب جواب می دهد که همه کارمندانش با یک کامپیوتر در ارتباط باشند.
نکته دیگر اینکه باید برنامه همچین برنامه ای را بازبان C بنویسی
--------------------------------------------------------------------------------------------------
منطق تو را از الف به به می برد در حالی که تخیل تو را به همجا می برد!!
انیشتن

dark-man
چهارشنبه 16 بهمن 1387, 11:26 صبح
البته این کار زیاد سختی چون من توی یک شرکتی یک دستگاه دیدم که دارای تعداد زیادی پورت تلفن بود که از مهندسی که در آن بخش بود سوالی در مورد دستگاه کردم. که جواب داد این دستگاه برای سازمانهایی که خواهان تلفن داخلی هستن و کنترل خطهایشان مثلا اگر بخشی در سازمان گوشی را برنداشت تلفن به طور خودکار روی منشی تلفنی می رفت و پیغام ضبط شده برای طرف مورد نظر بر روی کامپیوتر طرف فرستاده می شد .
یا اگر طرف در حال صحبت با کسی بود دیگر تلفن بوق اشغال نمی زد بلکه به صحبت کننده این نکته را گوش زد می کرد که کسی پشت خط است.
البته این سیستم برای شرکتهایی خوب جواب می دهد که همه کارمندانش با یک کامپیوتر در ارتباط باشند.
نکته دیگر اینکه باید برنامه همچین برنامه ای را بازبان C بنویسی
--------------------------------------------------------------------------------------------------
منطق تو را از الف به به می برد در حالی که تخیل تو را به همجا می برد!!
انیشتن



ممنوندوست عزیز . سعی ما این هست که از این سرویس در سی شارپ استفاده کنیم و برنامه های کامل با سی شارپ بنویسیم . اگر در این زمینه اطلاعاتی دارید ممنون و خوشحال میشم که در اختیار سایر دوستان هم بگذارید .

dark-man
چهارشنبه 16 بهمن 1387, 11:31 صبح
من با مودم های dialogic کار نکردم وراستش نمی دونم چی هستند ولی در مورد همین مودم های معمولی خودمان ادامه برنامه ای را که سورسش را قرار دادم می گویم
برنامه ای که قبلا ارائی کردم مربوط به یک خط است ولی اگر توجه کرده باشید یک کلاس بنام Tapidll ارائه شده است که در داخل همان کلاس , کلاس modem قرار دارد حالا برای اینکه برنامه ما بتواند دو و یا چند مودم را ساپورت کند شما نیاز به یک فرم دارید که به تعداد مودم های شما فعال می گرددیعنی اینکه در مرحلع اول در آن کامبو باکس که مودم ها شناسایی می شوند با انتخاب هر مودم داخل کامبو و سپس دکمه Connect یک فرم که در بالا گفتم ران شده و یک شئی از نوع کلاس modem را ایجاد می کند
حالا شما به تعداد مودم هایتان از آن فرم بر روی صفحه باید داشته با شید
مطلب بعدی این است که رویداد winproc که در فرم اصلی بود را به فرم فوق انتقال بدهید بنابراینهر msg مربوط به هرخط تلفن به فرم مربوط به خودش ارجا می گردد
نمونه کد ها را بعدا ضمیمه خواهم کرد


ممنون از راهنمائیتون و ممنون اگه نمونه کدی در این زمینه در اختیارمون بذارید .

saied_genius
چهارشنبه 16 بهمن 1387, 16:01 عصر
چندتا لينك در مورد TAPI كه كامل هستند فقط متاسفانه به انگليسي هستند.

اميدوارم به درد دوستان بخورد.


how to setup TAPI Server http://knowledge.qgate.co.uk/article.aspx?id=10110
TAPI API In MSDN http://msdn.microsoft.com/en-us/library/ms950407.aspx
Tapi samples http://www.julmar.com/tapi/
alsoCheck this forum http://www.vbcity.com/forums/topic.asp?tid=88933&page=1

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

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

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

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

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

dark-man
پنج شنبه 17 بهمن 1387, 10:08 صبح
با تشکر از همه دوستان

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

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

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

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

سلام . در مورد جواب اطلاع چندانی ندارم اما اگر شما خواسته باشید روی موبایلهای که از سیستم عامل ویندوز استفاده می کنند این مدل برنامه ها رو بسازید می تونید از بعضی از کامپوننت ها استفاده کنید . در مورد سیستمهای سیمبیان یا جاوا اطلاعاتی ندارم ولی فکر می تونید نرم افزار هائی که برای این سیستمها نوشته شده رو باز کنید و روش کارش رو ببینید .

dark-man
پنج شنبه 17 بهمن 1387, 10:10 صبح
چندتا لينك در مورد TAPI كه كامل هستند فقط متاسفانه به انگليسي هستند.

اميدوارم به درد دوستان بخورد.


how to setup TAPI Server http://knowledge.qgate.co.uk/article.aspx?id=10110
TAPI API In MSDN http://msdn.microsoft.com/en-us/library/ms950407.aspx
Tapi samples http://www.julmar.com/tapi/
alsoCheck this forum http://www.vbcity.com/forums/topic.asp?tid=88933&page=1


سلام . برای لینکهائی که معرفی کردید . سپاسگذارم . بررسی می کنم اگه اطلاعات جالبی داشت همین جا می گم .

dark-man
پنج شنبه 17 بهمن 1387, 10:15 صبح
چندتا لينك در مورد TAPI كه كامل هستند فقط متاسفانه به انگليسي هستند.

اميدوارم به درد دوستان بخورد.


how to setup TAPI Server http://knowledge.qgate.co.uk/article.aspx?id=10110
TAPI API In MSDN http://msdn.microsoft.com/en-us/library/ms950407.aspx
Tapi samples http://www.julmar.com/tapi/
alsoCheck this forum http://www.vbcity.com/forums/topic.asp?tid=88933&page=1


سلام . برای لینکهائی که معرفی کردید . سپاسگذارم . بررسی می کنم اگه اطلاعات جالبی داشت همین جا می گم .

dark-man
پنج شنبه 17 بهمن 1387, 10:42 صبح
لینکهائی که دوستمون معرفی کردند رو بررسی کردم .
در این لینک :
http://www.julmar.com/tapi/
یک کلاس یا در واقع یک فایل dll.* برای کار با tapi طراحی شده که به دوستان پیشنهاد می کنم از این کلاس استفاده کنند . لینک دانلود رو براتون میذارم :
http://www.julmar.com/tapi/atapinet.zip
در لینک دوم هم نمونه کدی برای کار با tapi هست که برای آموزش و استفاده مناسب هست . نمونه کد رو هم اینجا قرار می دم با لینک صفحه تا دوستان در صورت نیاز بیشتر بررسی کنند . از دوستان عزیز درخواست دارم اگر موارد فوق رو بررسی کردند و به نتایجی رسیدند در صورت تمایل اینجا مرقوم کنند تا سایرین هم استفاده کنند .
لینک صفحه جهت بررسی بیشتر :
http://www.vbcity.com/forums/topic.asp?tid=88933&page=1

این مطلب رو خدمت دوستان عرض کنم که کد مربوطه به زبان vb.net هست .
نمونه کد موجود در صفحه :


Imports TAPI3Lib

Namespace VBCity.TAPI

Public Class VBTAPI

Private Const MediaAudio As Integer = 8
Private Const MediaModem As Integer = 16
Private Const MediaFax As Integer = 32
Private Const MediaVideo As Integer = 32768

Private WithEvents oTAPI As TAPI3Lib.TAPI ' will hold our TAPI object
Private oAddress As ITAddress ' will hold our selected address (you can hold many address in an array)
Private RegCookie As Integer

Sub New()

Try

' creating a new instance to first initialize TAPI befor attaching the events
Dim m_TAPI As New TAPIClass
' a variable to hold supported media types for the address
Dim MediaTypes As Integer
' initializing TAPI
m_TAPI.Initialize()
' attaching event sink
oTAPI = m_TAPI
' getting red of the private instance as we have another global instance (oTAPI)
m_TAPI = Nothing

Dim AddressCollection As ITCollection = oTAPI.Addresses()

For Each Address As ITAddress In AddressCollection ' looping through address collection

If Address.State = ADDRESS_STATE.AS_INSERVICE Then ' checking if address is working

Dim MediaSupport As ITMediaSupport = Address ' extracting meida support interface from the address

MediaTypes = MediaSupport.MediaTypes ' extracting media types supporting

MediaSupport = Nothing ' dispose of the object

If (MediaTypes And MediaModem) = MediaModem Then
' the address is a data Modem
If (MediaTypes And MediaAudio) = MediaAudio Then
' Select the address since it supports Audio and is a FAX/Modem
oAddress = Address ' select this address
MsgBox("we have selected this address: " + oAddress.AddressName) ' show the selected address name
Exit For
End If
End If

End If

Next Address

If Not (oAddress Is Nothing) Then
' registering notifications for the selected address
RegCookie = oTAPI.RegisterCallNotifications(oAddress, True, False, MediaTypes, 1)
' Note: this registration can be done on as many adresses as you want

' we will not receive notifications unless we spacify which type of events we are interested in
oTAPI.EventFilter = (TAPI_EVENT.TE_CALLNOTIFICATION Or TAPI_EVENT.TE_CALLSTATE Or TAPI_EVENT.TE_CALLINFOCHANGE)
Else
MsgBox("no address selected")
End If

Catch ex As Exception
MsgBox("Error occured:" & vbCrLf & ex.Message, MsgBoxStyle.Critical, "VBCITY.VBTAPI")
End Try

' by now we are done for the initialization and registration and the events should fire
' Note: you must dispose of tapi befor you destroy the class and i will leave this for now
End Sub

Private Sub oTAPI_Event(ByVal TapiEvent As TAPI3Lib.TAPI_EVENT, ByVal pEvent As Object) Handles oTAPI.Event

' making a thread to asynchronosly process the event
Dim thAsyncCall As System.Threading.Thread

Select Case TapiEvent
Case TAPI_EVENT.TE_CALLNOTIFICATION 'Call Notification Arrived

' assigning our sub's delegate to the thread
thAsyncCall = New Threading.Thread(AddressOf CallNotificationEvent)
'passing the variable for the thread
CallNotificationObject = CType(pEvent, ITCallNotificationEvent)
' starting the thread
thAsyncCall.Start()

Case TAPI_EVENT.TE_CALLSTATE 'Call State Changes

' assigning our sub's delegate to the thread
thAsyncCall = New Threading.Thread(AddressOf CallStateEvent)
'passing the variable for the thread
CallStateObject = CType(pEvent, ITCallStateEvent)
' starting the thread
thAsyncCall.Start()

Case TAPI_EVENT.TE_CALLINFOCHANGE 'Call Info Changes

' assigning our sub's delegate to the thread
thAsyncCall = New Threading.Thread(AddressOf CallInfoEvent)
'passing the variable for the thread
CallInfoObject = CType(pEvent, ITCallInfoChangeEvent)
' starting the thread
thAsyncCall.Start()

End Select

End Sub

Private CallNotificationObject As ITCallNotificationEvent
Private Sub CallNotificationEvent()
' here we should check to see various notifications of new and ended calls

Select Case CallNotificationObject.Event

Case CALL_NOTIFICATION_EVENT.CNE_MONITOR
' the notification is for a monitored call

Case CALL_NOTIFICATION_EVENT.CNE_OWNER
' the notification is for an owned call
End Select

End Sub

Private CallStateObject As ITCallStateEvent
Private Sub CallStateEvent()
' here we should check to see call state and handle connects and disconnects

Select Case CallStateObject.State
Case CALL_STATE.CS_IDLE

Case CALL_STATE.CS_INPROGRESS

Case CALL_STATE.CS_OFFERING
' a call is offering so if you dont want it then pass it

' the code to pass the call is the following
'Dim CallControl As ITBasicCallControl = CallStateObject.Call
'CallControl.HandoffIndirect (CallStateObject.Call.CallInfoLong(CALLINFO_LONG.C IL_MEDIATYPESAVAILABLE)

Case CALL_STATE.CS_CONNECTED
' call is connected

Case CALL_STATE.CS_QUEUED
' call is beeing queued

Case CALL_STATE.CS_HOLD
' call is on hold

Case CALL_STATE.CS_DISCONNECTED
' call is disconnected

End Select

End Sub

Private CallInfoObject As ITCallInfoChangeEvent
Private Sub CallInfoEvent()
' here you can extract information from the call

'the code to extract the caller ID
' >>> put the following code in a try block and swallow the exception if it gives errors
Dim CallerID As String
CallerID = CallInfoObject.Call.CallInfoString(CALLINFO_STRING .CIS_CALLERIDNAME)

End Sub

End Class

End Namespace

alireza_ap
پنج شنبه 17 بهمن 1387, 11:45 صبح
ممنون از پاسخ سریع شما

من برنامه رو برای اجرا روی ویندوز می خوام ، نه روی گوشی

تنها تفاوت کار من و شما در استفاده از مودم هست ، کد نویسی همه یکی هستند ( فکر کنم )

شما از مودم معمولی برای ارتباط با خط ثابت استفاده می کنید ، من می خوام از مودم GSM استفاده کنم

از اساتید کسی اطلاع داره که چه می شود کرد ؟

ممنون


سلام . در مورد جواب اطلاع چندانی ندارم اما اگر شما خواسته باشید روی موبایلهای که از سیستم عامل ویندوز استفاده می کنند این مدل برنامه ها رو بسازید می تونید از بعضی از کامپوننت ها استفاده کنید . در مورد سیستمهای سیمبیان یا جاوا اطلاعاتی ندارم ولی فکر می تونید نرم افزار هائی که برای این سیستمها نوشته شده رو باز کنید و روش کارش رو ببینید .

jjsaeed
شنبه 19 بهمن 1387, 14:46 عصر
سلام دوستان دستتون درد نکنه از بابت این مطالب من می خوام یه برنامه بنویسم که چندتا فایل ویو رو به انتخاب کاربر البته با استفاده از دکمه های تلفن برای کاربر پخش کنم اگه میشه کمکم کنید در ضمن من در مورد این سیستم ها چیز زیادی نمیدونم

dark-man
شنبه 19 بهمن 1387, 18:15 عصر
سلام دوستان دستتون درد نکنه از بابت این مطالب من می خوام یه برنامه بنویسم که چندتا فایل ویو رو به انتخاب کاربر البته با استفاده از دکمه های تلفن برای کاربر پخش کنم اگه میشه کمکم کنید در ضمن من در مورد این سیستم ها چیز زیادی نمیدونم

شما باید ابتدا بوسیله یکی از کامپوننت های معرفی شده نمونه ای از برنامه رو ایجاد کنید سپس به برنامه این امکان رو بدهید هدف این تاپیک هم در واقع حل همین مشکلات هست . متاسفانه منابع در این زمینه یا بهتر بگم در زمینه نوشتن این نوع برنامه ها با سی شارپ کم هست ولی ان شاءالله در اینده ای خیلی نزدیک راهنمای کاملی در اختیار دوستان قرار می گیره . فعلا" برای نمونه می تونید از کدی که جناب accpascal گذاشتن استفاده کنید .

accpascal
یک شنبه 20 بهمن 1387, 15:31 عصر
من می خوام یه برنامه بنویسم که چندتا فایل ویو رو به انتخاب کاربر البته با استفاده از دکمه های تلفن برای کاربر پخش کنم اگه میشه کمکم کنید در ضمن من در مورد این سیستم ها چیز زیادی نمیدونم
یکی دیگر از امکانات Tapi3 استفاده از منابع صوتی ویو می باشد که نیاز به برنامه نویسی پیچیده تری دارد
دوست عزیز بهتر است شما ابتدا امکانات اولیه برقراری ارتباط و جواب به ارتباط ورودی را آزمایش کرده سپس مراحل بعدی که همان پخش صدا و دریافت پیغام ها از طریق کلیدهای تلفن می باشدرا بیاموزید

danial82
شنبه 03 اسفند 1387, 13:37 عصر
فکر کنم مشکل برنامه نویسایی مثل من اینکه با محیط تلفن گویا آشنا نیستن اگه یکی از دوستان بتوانه یه برنامه خیلی بذاره که بعد از زنگ خوردن و یه صدایی پخش بشه و بعد یه مقدار خوانده بشه
خیلی قابل فهم تر خواهد بود تا اینکه چندتا سایت یا pdf معرفی کنیم بعد بگیم برو خودت بنویس
با ارائه چنین برنامه ای هر کس میتوانه با توجه به برنامه ارائه برای خودش برنامه رو Customize کنه
accpascal عزیز یه سری برنامه آموزشی شروع کرد اما نیمه رها کرد اگه لطف کنه تمام اینها رو تو یه برنامه قرار بده خیلی عالی میشه
با تشکر

m110_110
چهارشنبه 28 اسفند 1387, 13:40 عصر
با سلام
من هم نظرم همانند آقای دانیال هست
امیدوارم در تعطیلات نوروز یک نفر این کار را انجام بده
با تشکر

accpascal
چهارشنبه 28 اسفند 1387, 20:08 عصر
accpascal عزیز یه سری برنامه آموزشی شروع کرد اما نیمه رها کرد اگه لطف کنه تمام اینها رو تو یه برنامه قرار بده خیلی عالی میشه
با تشکر
من واقعا از همه دوستان عذر خواهی می کنم واقعیتش من یک برنامه نسبتا کامل در مورد تلفن گویا دارم ولی بعلت اینکه اکثرا از دلفی استفاده می کنم آخرین بار که ویندوز کامپیوترم را عوض کردم بعلت مشغله زیاد vs را نصب نکرده و به سورس برنامه تلفن دسترسی ندارم قول می دهم در ایام نوروز این کار را انجام دهم البته خودم هم مایلم که برنامه تلفن کاملتری با استفاده از تجربیات دوستان داشته باشم

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

mohammad.sakhidel
پنج شنبه 24 دی 1388, 19:48 عصر
منظورتون نوروز 89 بود؟

system32
پنج شنبه 24 دی 1388, 22:31 عصر
به لینک زیر مراجعه کنید:

http://barnamenevis.org/forum/showthread.php?t=178429