تبليغاتX
Linux - VOIP - Telephony

پروژه The Village Telco که توسط David Rowe یکی از asterisk کار های حرفه ای استرالیا در نیجریه برای ارتباط تلفنی مناطق محروم در حال پیاده سازی است نمونه ای از نقش سخت / نرم افزار های کدباز را در زندگی انسان ها به نمایش گذاشته .

بهره گیری IP0X هایی که میزبان نرم افزار پرقدرت استریسک هستند در کنار اکسس پوینت های تقویت شده و ارزان قیمت سری WRTG  لینکسیس که ارتباط Mesh مراکز مختلف را امکان پذیر کرده ... این روز ها راه حلی شده تا مردم مناطق محروم نیجریه هم بتونن تلفن بزنند .


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در جمعه پنجم شهریور 1389 و ساعت 22:28 |
کدک های صوتی و تصویری برای فشرده کردن پکت ها و در نتیجه اشغال پهنای باند کمتر در تماس های صوتی و تصویری استفاده میشن . امروز برای پیاده سازی یکی از پروژه های سیستم تلفنی و انتقال تماس ها در بستر اینترنت کدک OpenSource G.729 که میشه گفت تفاوتی با نسخه با لایسنس G.729 نداره را نصب کردم ولی دستورات تشخیص کدک و  مانیتور کردن اینکه یک تماس الان داره از چه کدکی استفاده می کنه را فراموش کرده بودم .

در این پست با سه دستور کاربردی در این زمینه آشنا میشیم .


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در دوشنبه یکم شهریور 1389 و ساعت 21:8 |

IVR یا interactive voice response  یکی از قابلیت های پرکاربرد سیستم های تلفنی است که تاحالا حتما شما هم یک بار به اون برخوردید .  منوهای صوتی که شرکت های مختلف برای معرفی بخش های مختلف و ارتباط با اپراتور و ... استفاده می کنند . یا مرکز های اطلاع رسانی تلفنی که به صورت خودکار پیام های خاص منظوره را پخش می کنند . امکان برقراری ارتباط با پایگاه داده ها  قابلیت های مفیدی را در اختیار کاربر قرار می دهد که مراکز چک کردن حساب های بانکی به صورت تلفنی یا مراکز مشاوره ای و... نمونه ای از این نوع سیستم ها هستند .

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

امکان برقراری با پایگاه داده های مختلف از جمله MYSQL ، Oracle ، MSSQL و ...

امکان بهره گیری از واسط های مختلف ارتباطی با خطوط PSTN  ، GSM و ...  و عدم وابستگی به برند خاص

امکان پیاده سازی High Redundancy  در راه حل های حرفه ای و در نتیجه قابلیت اطمینان بالا

امکان بهره گیری از امکانات یک IP PBX و Call Center در کنار قابلیت IVR

پشتیبانی از فرمت های مختلف صوتی

را بتوان مهمترین علت های برشمردن Asterisk در زمره پرقدرترین های ارائه دهنده سرویس IVR دانست .  در این  پست با نحوه تعریف یک IVR  نسبتا حرفه ای دز سیستم تلفنی Asterisk آشنا میشیم.


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در یکشنبه بیست و چهارم مرداد 1389 و ساعت 0:2 |

ترانک QSIG رایج ترین راه حل در انتقال تماس های مراکز تلفنی سنتی مانند مدل های مختلف سانترال های PansSonic که از ای پی پشتیبانی نمی کنند یا مراکز حرفه ای تری مانند سوییچ های اریکسون است . در این پست نحوه برقراری ترانک  QSIG بین MD110 اریکسون و مسیر یاب های Cisco و همچنین تعریف dialplan یا به اصلاح numbering را خواهید آموخت . از این روش می توان در سناریوهای مشابه برای برقرار ترانک QSIG و انتقال تماس های مراکز دیگر از جمله PanaSonic یا ZTE یا ... نیز بهره برد .


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در چهارشنبه سیزدهم مرداد 1389 و ساعت 22:51 |

یکی از امکانات مدیریتی در مراکز تماس ، امکان نظارت و شنود مکالمات کاربران است . در این پست با نحوه تنظیم سیستم تلفنی Asterisk برای فعال سازی قابلیت شنود مکالمات با استفاده از دو تابع DAHDIBarge ( و نسخه قدیمی تر آن به نام ZAPBarge ) و ChanSpy آشنا می شویم .


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در جمعه هشتم مرداد 1389 و ساعت 14:49 |
مفهوم و کاربرد h extension درسیستم تلفنی asterisk  در ابتدای آشنایی من با این سیستم تلفنی کمی گیچ کننده بود ولی در نوشتن یک dialplan حرفه ای استفاده از این extension معمولا الزامی است . h extension در واقع زمانی فراخوانی می شود که تماس قطع یا به اصطلاح hang up میشود . خوب با استفاده از این extension پرقدرت می توانیم بعد از قطع تماس عملیات خاص مربوط به آن کانال را ادامه بدهیم . معمولا این عملیات شامل نوشتن جزئیات تماس در فایل های csv مربوط  ، که در حالت پیش فرض asterisk برای این کار استفاده می کند یا در پایگاه داده های مختلفی از جمله MYSQL  ، Postgresql یا Oracle است ...


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در جمعه بیست و پنجم تیر 1389 و ساعت 13:46 |
حدودا 20 روز دیگه یعنی پایان جولای 2010 زمان انتشار نسخه بتای Asterisk ورژن 1.8  اعلام شده . شاید بزرگترین قابلیت هایی که به صورت تعبیه شده در این نسخه وجود داره و مدیران این سیستم تلفنی را ترغیب به استفاده از این نسخه می کنه  پشتیبانی از SRTP  یا همان Secure RTP است که قابلیت رمزنگاری را به مدیایی که می خواهیم از طریق SIP منتقل کنیم میده و دوم پشتبانی کامل از IPv6 است .


+ نوشته شده توسط امید مهاجرانی در شنبه نوزدهم تیر 1389 و ساعت 12:5 |

آیا می تونم DialPlan ای تعریف کنم که یک برنامه جانبی را همزمان باdial  کردن یک شماره اجرا کنم ؟

چطور می تونم DialPlan ای طراحی کنم که داخلی شماره 2 بعد از 10 ثانیه شروع به زنگ خوردن کنه در حالی که داخلی شماره 1 هنوز داره زنگ می خوره ؟

در یک پروژه نیاز بود تا کنترل برنامه ای که event های Asterisk را با استفاده از واسط AMI ( Asterisk Manager Interface  ) مانیتور می کرد را به DialPlan منتقل کرد تا از آنجا بتونم اسکریپت AGI  )َAsterisk Gateway Interface  ) مورد نظرم در دایل پلن  را اجرا کنم . با این تکنیک میشد از قدرت AGI در برنامه هایی که از AMI برای کنترل Asterisk استفاده  می کنند ، بهره برد . شاید یک مثال مطلب را روشن تر کنه .

شما یک دکمه را روی صفحه وبسایتون فرض کنید که وقتی اونو فشار می دید با شماره ای که جلوی آن نوشته شده تماس برقرار می کنه . این کارو میشه به راحتی با استفاده از AMI انجام داد ولی مثلا کنترل اینکه اگر اشغال بود چه کاری انچام شود را میشه با سپردن کنترل برنامه به DialPlan خود Asterisk با سادگی خیلی بیشتری انجام داد. انجام این عملیات با بهره گیری از قابلیت LocalChannels در Asterisk امکان پذیر است . در این مطلب ابتدا دو مثال ساده از به کارگیری LocalChannel ها در نوشتن DialPlan های حرفه ای را بیان می کنیم و بعد یک مثال از استفاده از آنها در برقراری ارتباط بین AGI و AMI


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در شنبه پنجم تیر 1389 و ساعت 15:15 |

وقتی از Asterisk به عنوان سوییچ نرم افزاری (SoftSwitch ) برای انتقال ترافیک VoiceOverIP سازمان استفاده می کنید و هزینه زیادی برای ترافیک داخلی و بین الملل پرداخت می کنید ، امنیت Asterisk بیشتر اهمیت پیدا می کند . همیشه هکر هایی در سازمان یا بیرون آن وجود دارند که به دنبال Asterisk های ناامنی  هستند که بتوانند به آن نفوذ کرده و در کمتر از چند دقیقه یک صورت حساب میلیونی به شما هدیه بدهند .

در این مطلب نمی خواهیم مکانیزم های امنیتی ممکن و موجود را برای امن کردن یک سرور در شبکه بیان کنیم بلکه به طور خاص نکاتی در استفاده  از فایروال پیش فرض لینوکس  به عنوان اولین مرحله از چرخه تامین امنیت این سرویس را بررسی می کنیم  ادامه مطلب 
ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در جمعه چهارم تیر 1389 و ساعت 13:10 |

مشتری ها صف کشیدن تا اجناس چینی یک بار مصرف شما را با قیمت چند برابر بخرن با این تفاوت که سفارش  تلفنی هست ، خوب در این حالت شما حاضرید مشتری به این نازنینی را به علت اینکه تعداد کارمند های فروش ( البته  از نوع شیرین زبانش)  را  کم استخدام کردین از دست بدید ؟

بهتره که مشتری ها به محض تماس پاسخ داده بشن و اگر اپراتور ها مشغولند بعد از شنیدن یک پیام خوش آمد گویی یا احتمالا بخشی از آهنگ I wanna Love You  از Akon  برن تو صف انتظار تا زیر پاشون Asterisk سبز شه...

روند ساختن یک صف با استفاده از Agent ها در * را در ادامه همین پست بخوانید ...


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در سه شنبه پنجم آبان 1388 و ساعت 19:1 |

با سرعت زیاد پیشرفت تکنولوژی Voice Over IP و فراگیر  شدن آن شاید به نظر برسه این تکنولوژی باید در هر شبکه ای به راحتی کار کنه ولی میشه گفت  ابتدایی و پرکاربردترین عملی که در شبکه انجام میشه یعنی ترجمه آدرس شبکه یا همان NAT ، سر ناسازگاری با پروتکل محبوب خانواده VOIP یعنی SIP  داره . پس اگر در حال پیاده سازیVoice Over IP  در سازمانتون هستید و تلفن ها به خوبی register  میشن و زنگ می خورن و حتی Caller ID عبور داده میشه ولی صدایی ندارید یا صدا یک طرفه است ...

 


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در شنبه بیست و هفتم تیر 1388 و ساعت 0:24 |
به نظر من ساده و کم هزینه ترین روش ، برای پا گذاشتن به دنیای فنی Voice Over IP  و آشنایی با مفاهیم و اصطلاحات آن ، سیستم تلفنی Asterisk  است . استفاده از Live CD هایی که بر پایه Asterisk   هستند از جمله Elastix  که توزیع مورد علاقه من هست روند یادگیری را به مراتب ساده تر کرده است .  فرض می کنیم شما چیزی از Voice Over IP  یا Asterisk  نمی دانید . خوب همین الان شروع کنید . Elastix نسخه Stable را از آدرس  http://elastix.org دانلود کنید ....

 


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در سه شنبه بیست و سوم تیر 1388 و ساعت 13:20 |

تابع تلفظ اعداد به فارسی در Asterisk  

قابلیت ارتباط Asterisk    با زبان های برنامه نوسی رایج و پرکاربردی مثل Python ، PHP  ، Java  یا Perl قدرت فوق العاده ای به اون بخشیده . چند وقت پیش تو یک پروژه نیاز به فارسی سازی بخش هایی از Asterisk  از جمله تلفظ اعداد طبق دستور زبان فارسی شد . اگرچه معمولا خیلی کم پیش میاد که بتونم وقتی برای برنامه نویسی بگذارم و در برنامه نوسی سرعت بالایی ندارم ولی سادگی کار با PHP و ارتباط آن با Asterisk با استفاده از ماژول PHP-AGI  سرعت خوبی به کار داده بود . در این پست تابع persiansaynum() که برای تلفظ اعداد به فارسی در Asterisk  نوشتم را قراردادم . فقط کافی است اعدادی را که دربرنامه  می بینید در دایکتوری persianvoice  قرار بدید و آنرا در مسیر /var/lib/asterisk/sounds  قرار بدید . برای اجرای اسکریپت نیاز به نصب PHPAGI دارید که می توانید بسته را از اینجا دانلود و نصب کنید . اسکریپت را در مسیر /var/lib/asterisk/agi-bin  قرار بدید و دسترسی را تنظیم کنید .


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در سه شنبه دوازدهم خرداد 1388 و ساعت 12:52 |

ارتباط سرور های Asterisk  با استفاده از  پروتکل InterAsteriskeXchange 2


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در چهارشنبه نهم اردیبهشت 1388 و ساعت 12:42 |

  به جرأت میشه گفت FreePBX رابج ترین ابزار در برنامه نویسی dialplan ها در asterisk  است که چه در نصب سیستم تلفنی asterisk  از پایه در لینوکس و چه در سیستم هایی تلفنی آماده به نصب که برپایه استریسک هستند از جمله AstreiskNow ،elastix  ، TrixBox یا ... معمولا برای تنظیم dialplan ها استفاده میشه . اگرچه تنظیم dialplan ها با استفاده از این ابزار و ماژول های اضافی ساده تر از تنظیم آنها به صورت دستی است ولی گاهی برای تنظیم dialplan های خاص نیاز میشه تا به تنظیم دستی در کنار تنظیم از طریق FreePBX اقدام کرد ولی آیا این کار به سادگی امکان پذیر است ؟

ادامه مطلب را بخونید ...


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در جمعه چهاردهم فروردین 1388 و ساعت 0:37 |
در Asterisk میشه Music On hold را کلاس بندی کرد . به عنوان مثال شما می خواهید وقتی مشتریان با بخش پشتیبانی تماس می گیرند در زمانی که منتظرند پیام خاصی را بشنوند که با بخش های دیگر مثل فروش یا مدیریت متفاوت است ...


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در یکشنبه چهارم اسفند 1387 و ساعت 16:37 |

در این سناریو می خواهیم ترافیک صوت و تصویر را از طریق تانل PPTP از شبکه عبور دهیم . در سایت مرکزی امکان دسترسی مستقیم به اینترنت و تنظیم valid Ip وجود دارد ولی در سایت راه دور دسترسی به اینترنت از طریق دروازه به آدرس 192.168.16.1  امکان پذیر شده است . ترافیک شبکه از طریق تانل pptp که نحوه ادرس دهی آن در شکل فوق نمایش داده شده است عبور خواهد کرد . در این آموزش نحوه ایجاد و تنظیم سرور و کلاینت وی پی ان در میکروتیک و همچنین ایجاد مسیر های لازم جهت مسیریابی بین دو شبکه بررسی می شود .


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در شنبه دوازدهم بهمن 1387 و ساعت 16:9 |
مدتی هست که دارم روی نحوه برقراری ارتباط بین سیستم های IB-PBX شرکت AvAyA با Asterisk کار میکنم .برعکس Asterisk که کاملا کدباز و مجانی هست ، در تجهیزات AvAyA یکBase سخت افزاری مثلا IP Office 500 باید خریداری بشه و نرم افزار های اون هم هر کدوم license چند هزار دلاری دارن که توی بازار شام نرم افزاری ایران و شبکه های P2P هم یافت نمی شن و اگر هم بشن تازه باید license مربوطه انها هم در سخت افزار فعال بشه . این پروژه باعث شده تا جزئیات بیشتری درباره asterisk و نحوه پیکربندی اون یاد بگیرم . مثلا همیشه من برای تعریف کاربران SIP ، برای هر کاربر تنظیمات را در sip.conf تکرار می کردم ولی استفاده از Template ها در sip.conf کار را بسیار مختصر تر می کنه ...

ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در یکشنبه پانزدهم دی 1387 و ساعت 14:44 |

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


+ نوشته شده توسط امید مهاجرانی در دوشنبه نهم دی 1387 و ساعت 10:51 |
Asterisk یک ippbx حرفه ای و همانطور که از اسمش پیداست همه کارس ...


 
ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در سه شنبه چهاردهم آبان 1387 و ساعت 9:17 |
در کنسول Asterisk وقتی کنفرانس تلفنی را راه اندازی کرده بودم ایراد Unknown RTP codec 126 received از کلاینت ها دریافت می کردم و بعد از مدتی کیفیت صدا خراب می شد . برای حل این مشکل باید rtp.c را patch کرد ...

ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در یکشنبه پنجم آبان 1387 و ساعت 14:51 |
اگر در dhcp server ویندوز دو تا scope تعریف کنید  یا باید دو تا کارت شبکه بخرید و دو تا ip در رنجه scope ها به اون تا کارت شبکه بدید . یا به راحتی یک superscope در dhcp server  تعریف کنید و اون دو تا scope را  عضو این superscop کنید . چون dhcpserver ویندوز فقط از primary ip  استفاده می کنه . ولی در لینوکس چیزی به نام superscop در  dhcpserver نداریم و فقط کافیه دو تا scop را در dhcpserver تعریف کنیم . و اما

Scope 1 = 192.168.0.0/24         ------------------------> vlan 10

Scope 2 = 192.168.1.0/24         ------------------------> vlan 20

Scope 3 = 192.168.2.0/24         ------------------------> vlan 30

 سه تا رنج دارم که باید طبق قانون بالا به کلاینت های vlan ها اختصاص داده بشن ...


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در پنجشنبه بیست و پنجم مهر 1387 و ساعت 20:13 |
همیشه دوست داشتم تو یه شرکت کار کنم که فرصت تحقیق و یادگیری  داشته باشم . اینجا این فرصت را دارم تا  روی انتقال صوت و تصویر بر روی بستر آی پی کار کنم . برام واقعا لذت بخشه ...

تو این پست دو پروتکل SIP و H 323 را تشریح و با هم مقایسه می کنم .


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در چهارشنبه هفدهم مهر 1387 و ساعت 20:40 |
خودم آی پی ولید ( Public ) دارم و می خوام به یک کامپیوتر پشت NAT با آی پی اینولید ( private ) دسترسی Secure SHell داشته باشم . راه حل ساده Reverse SSH Tunneling خواهد بود .

مثلا کامپیوتر مقصد دارای آدرس آی پی 192.168.100.100 و کامپیوتر خودم آی پی ولید 217.219.30.30

دستور ssh -R 19999:localhost:22 root@217.219.30.30 را در کامپیوتر مقصد اجرا می کنیم که 19999 یک پورت آزاده که توسط نرم افزاری استفاده نمیشه .

و در کامپیوتر خودم ssh localhost -p 19999 را اجرا می کنم تا بعد از وارد کردن پسوورد root کامپیوتر هدف به اون متصل بشم .

برای جلوگیری از timeout شدن کانکشن روی کامپیوتر مقصد یه دستور مثل top را اجرا کنید .

+ نوشته شده توسط امید مهاجرانی در چهارشنبه سوم مهر 1387 و ساعت 2:57 |

یادداشتی از پیکربندی bind در حالت مینیمم


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در سه شنبه دوم مهر 1387 و ساعت 1:39 |
چون شروع کارم با لینوکس با توزیع redhat  بوده برای تنظیم کردن وضعیت سرویس ها در لینوکس با کار با دستور service عادت کردم . خوب حالا هم در دبیان از بسته sysconfig  استفاده می کنم تا نکنه از ترک عادت یهو مریض شم ...

sudo apt-get install sysvconfig

و حالا میشه طبق عادت ردهتی مثلا service snort restart کرد و برا فعال یا غیر فعال کردن یک سرویس از دستور sysvconfig بهره برد ...

 

+ نوشته شده توسط امید مهاجرانی در دوشنبه یکم مهر 1387 و ساعت 22:33 |

Proxy Address Resolution Protocol  یا به اختصار Proxy ARP ، تکنیکی است که در آن میزبان ( معمولا یک مسیریاب ) درخواست های ARP ای را که برای میزبان دیگری است پاسخ می دهد . در واقع مسیریاب با جا زدن خودش به جای مقصد اصلی ، عملیات مسیریابی را به عهده می گیرد .

در نگاه اول ممکنه مفهومه بالا یه خورده گیچ کنند باشه ولی در ادامه خواهید دید که مفهوم بسیار ساده و مفیدی است که در این پست نحوه کار این پروتوکل و پارامتر های آن در روتر سیسکو را میگم . proxy ARP در لینوکس یه کاربرد بسیار دوست داشتنی داره و می تونیم با استفاده از این قابلیت علاوه بر عملیات خاص مسیریابی یک فایروال کاملا شفاف و غیرقابل شناسائی در شبکه داشته باشیم که میمونه برا پست های بعدی ...

راستی این سوالی بود که دیروز در یک مصاحبه برا کار  از من پرسیدن و من فراموش کرده بودم .


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در چهارشنبه بیست و هفتم شهریور 1387 و ساعت 18:13 |

Reset کردن پسورد در لینوکس وقتی دسترسی فیزیکی داشته باشیم مثل آب خوردنه ولی طبق معمول کارها برا من با دردسره با دردسر که نه جالب ...


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در پنجشنبه چهاردهم شهریور 1387 و ساعت 16:31 |

چند تا عکس با موبایل از بهترین سفر عمرم در مرداد ۸۷ 

کاش تموم نمی شد ...


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در دوشنبه یازدهم شهریور 1387 و ساعت 9:44 |
با فایروال های شرکت Juniper کار کرده بودم و فکر نمی کردم حداقل از نظر CLI با مسیریاب هاش زیاد فرق داشته باشه . ولی هسته سیستم عامل مسیریاب های شرکت جونیپر بر پایه لینوکس FreeBSD است که محیطی متفاوت از فایروال هاش داره . تو این پست درباره ساختار سیستم عامل مسریاب های جونیپر که JUNOS نام داره می نویسم ...

منبع : Sybex - Juniper JNCIA Study Guide


ادامه مطلب (more)
+ نوشته شده توسط امید مهاجرانی در سه شنبه بیست و پنجم تیر 1387 و ساعت 12:6 |