پیغام خطا در اضافه کردن trunk در ایزابل
سلام.وقت بخیر
تو سرور ایزابل وقتی قصد دارم خط سیپ فون رو در قسمت ترانک اضافه کنم پیغام خطای زیر رو نشون میده
قبلا این ترانک رو ساختیم و حذف کردیم و الان اجازه ساختن مجدد رونمیده و همچنین اجازه اضافه کردن هیچ ترانکی رو نمیده و در هر حالتی پیغام میده که این ترانک در حال حاضر وجود دارد
ATAL ERROR
DB Error: already exists
INSERT INTO sip (id, keyword, data, flags) values ('tr-peer-2',?,?,'0')
Trace Back
/var/www/html/admin/modules/core/functions.inc.php:6232 die_issabelpbx()
[0]: DB Error: already exists<br><br>INSERT INTO sip (id, keyword, data, flags) values ('tr-peer-2',?,?,'0')
/var/www/html/admin/modules/core/functions.inc.php:6143 core_trunks_addSipOrIax()
[0]: host=***provider ip address*** username=***userid*** secret=***password*** type=peer
[1]: sip
[2]: 5609
[3]: 2
[4]: 0
[5]: peer
/var/www/html/admin/modules/core/functions.inc.php:6076 core_trunks_backendAdd()
[0]: 2
[1]: sip
[2]: 5609
[3]:
[4]:
[5]: 5609
[6]: host=***provider ip address*** username=***userid*** secret=***password*** type=peer
[7]:
[8]: secret=***password*** type=user context=from-trunk
[9]:
[10]: off
[11]:
[12]: off
[13]: 5609
[14]:
[15]: off
[16]:
/var/www/html/admin/modules/core/page.trunks.php:152 core_trunks_add()
[0]: sip
[1]: 5609
[2]:
[3]:
[4]: 5609
[5]: host=***provider ip address*** username=***userid*** secret=***password*** type=peer
[6]:
[7]: secret=***password*** type=user context=from-trunk
[8]:
[9]: off
[10]:
[11]: off
[12]: 5609
[13]:
[14]: off
[15]:
/var/www/html/modules/pbxadmin/libs/contentIssabelPBX.php:499 include()
[0]: /var/www/html/admin/modules/core/page.trunks.php
/var/www/html/modules/pbxadmin/index.php:29 getContent()
[0]:
[1]: pbxadmin
[2]: 1
/var/www/html/libs/paloSantoNavigation.class.php:264 _moduleContent()
[0]:
[1]: pbxadmin
/var/www/html/libs/paloSantoNavigation.class.php:228 paloSantoNavigation->includeModule()
[0]: pbxadmin
/var/www/html/index.php:301 paloSantoNavigation->showContent()
/var/www/html/config.php:20 include()
[0]: /var/www/html/index.php
وقتی هم از استریکس تنظیمات موجود رو خروجی می گیرم اونجا هم خط ترانک دوم رو نشون میده در حالیکه الان کلا یک خط سیپ فون فعال و در حال استفاده هستش
Name/username Host Dyn Forcerport Comedia ACL Port Status Description 100/100 192.***.2.*** D No No A *** OK (3 ms) 101/101 192.***.2.*** D No No A *** OK (4 ms) 102 (Unspecified) D No No A 0 UNKNOWN 103/103 192.***.2.*** D No No A *** OK (5 ms) 105/105 192.***.2.*** D No No A *** OK (5 ms) 106/106 192.***.2.*** D No No A *** OK (5 ms) 107 (Unspecified) D No No A 0 UNKNOWN 206/206 192.***.2.*** D No No A *** OK (5 ms) ******09/******09 ***.***.***.*** Yes Yes *** OK (9 ms) ******15/******15 ***.***.***.*** Yes Yes *** OK (10 ms) 303/303 192.***.2.*** D No No A *** OK (4 ms) 306/306 192.***.2.*** D No No A *** OK (4 ms) 412/412 192.***.2.*** D No No A *** OK (4 ms) 500 (Unspecified) D No No A 0 UNKNOWN 14 sip peers [Monitored: 11 online, 3 offline Unmonitored: 0 online, 0 offline]
3 پاسخ
حذف رکوردهای باقیمانده در دیتابیس
بررسی فایل کانفیگ فایلهای پیکربندی Asterisk (مانند `sip.conf`) را بررسی کنید و اطمینان حاصل کنید که هیچ ورودی مربوط به ترانک قبلی باقی نمانده باشد
بارگذاری مجدد تنظیمات بعد از انجام تغییرات مجدداً بارگذاری کنید تا تغییرات اعمال شوند برای این کار میتوانید از دستور `reload`استفاده کنید
پاکسازی کش سیستم ممکن است کش سیستم باعث بروز این مشکل شده باشد برای اطمینان از پاک بودن کش، میتوانید سیستم را ریستارت کنید یا از دستورات مناسب برای پاکسازی کش استفاده کنید
برای رفع این مشکل در Issabel که به خاطر تداخل رکوردهای پایگاه داده در Asterisk به وجود آمده، باید مراحل زیر را طی کنی:
1. بررسی رکوردهای موجود در پایگاه داده MySQL
به نظر میرسد که رکورد Trunk حذف نشده و هنوز در دیتابیس باقی مانده است. برای بررسی این موضوع وارد MySQL شو:
mysql -u root -p asterisk
سپس این کوئری را اجرا کن تا ببینی آیا رکوردی برای این ترانک باقی مانده است:
SELECT * FROM sip WHERE id LIKE '%tr-peer-%';
اگر نتیجهای نمایش داده شد که حاوی tr-peer-2 یا ترانکهای مشابهی بود که دیگر وجود ندارند، آن را به صورت دستی حذف کن.
2. حذف رکوردهای باقیمانده
برای حذف رکورد مشکلدار:
DELETE FROM sip WHERE id='tr-peer-2';
سپس از دیتابیس خارج شو:
exit
3. بررسی و پاکسازی تنظیمات باقیمانده در Asterisk
با استفاده از دستورات زیر وضعیت ترانکها را در Asterisk بررسی کن:
asterisk -r
sip show peers
sip show registry
اگر هنوز اثری از tr-peer-2 بود، فایلهای کانفیگ را بررسی و پاکسازی کن:
rm -f /etc/asterisk/sip_additional.conf
rm -f /etc/asterisk/extensions_additional.conf
سپس Asterisk را مجدداً بارگذاری کن:
core reload
4. بررسی فایلهای تنظیمات دستی (در صورت نیاز)
در برخی مواقع، ترانکهای حذفشده هنوز در فایلهای پیکربندی باقی میمانند. بنابراین فایلهای زیر را بررسی کن:
nano /etc/asterisk/sip_custom.conf
nano /etc/asterisk/sip_additional.conf
nano /etc/asterisk/extensions_custom.conf
در این فایلها اگر tr-peer-2 یا هر اثری از ترانک مشکلدار دیدی، آن را حذف کن.
5. ریستارت سرویسهای Issabel و Asterisk
بعد از انجام تغییرات، سرور Issabel را ریستارت کن:
systemctl restart asterisk
systemctl restart httpd
systemctl restart mysql
حالا دوباره وارد Issabel شو و سعی کن ترانک را ایجاد کنی.
6. تست نهایی
بعد از اینکه ترانک جدید را اضافه کردی، مطمئن شو که در Asterisk هم به درستی ثبت شده:
asterisk -r
sip show peers
sip show registry
این خطا معمولاً زمانی اتفاق میافته که یک ترانک حذف شده ولی همچنان رکوردهای آن در دیتابیس یا فایلهای کانفیگ باقی میمانند. با حذف رکوردهای باقیمانده و ریستارت سرویسها، مشکل برطرف میشود.اگر بعد از انجام این کارها همچنان مشکل داشتی، بررسی کن که آیا فایروال یا SELinux روی سیستم فعال هستند یا نه، چون ممکنه جلوی نوشتن تغییرات جدید رو بگیرند.
سلام. وقت بخیر
آقای نصیری عزیز ممنون بابت راهنمایی کامل
طبق روالی که شما گفتید پیش رفتم
1. بررسی رکوردهای موجود در پایگاه داده MySQL
2. حذف رکوردهای باقیمانده ( با موفقیت انجام شد. از دستورات مرحله اول استفاده کردم و تو لاگ نشون میداد که tr-peer-2 وجود ندارد)
3. بررسی و پاکسازی تنظیمات باقیمانده در Asterisk ( تو این مرحله با دستور
sip show registry
فقط یک خط سیپ فون رو در حالت رجیستر نشون میده
اما با دستور
sip show peers
همچنان دوتا خط ترانک نشون داده میشه
فایل های کانفیگ رو شروع به بررسی کردم
فایلی با عنوان sip_additional وجود نداشت . این لیست تمام فایل هایی که تحت عنوان sip وجود دارند
در فایل
extensions_additional.conf
هیچ دیتایی بابت ترانک دوم وجود نداشت
این فایل ها رو داخل ایزابل از مسیر
بررسی کردم
با همین فعالیت ها تونستم ترانک دوم رو اضافه کنم
فقط نکته ای که مونده
با دستور sip peers registery هر دو خط رو حالا نشون میده که رجیستر شدند
اما با دستور sip show peers وضعیت خط دوم رو
Unspecified
و status unknown نشون داده میشه
از بیرون هر دو خط زنگ میخورد
سپاس فراوان
ضمنا فایروال یا SELinux در حالت غیر فعال قرار داره