يقدم هذا المستند الإجراء الخاص بكيفية ترقية البرامج الثابتة لهاتف Cisco IP باستخدام Cisco CallManager Express.
تأكد من استيفاء المتطلبات التالية قبل أن تحاول إجراء هذا التكوين:
هواتف Cisco IP مسجلة حاليا مع Cisco CallManager Express.
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية، ولكنها تنطبق على جميع إصدارات Cisco CallManager Express وأحمال هاتف Cisco IP:
نظام Cisco IOS؟ موجه على برنامج Cisco IOS؟ الإصدار 12.4(4)T مع الإصدار 3.4(0) من Cisco CallManager Express
هاتف بروتوكول الإنترنت Cisco IP Phone 7960
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك مباشرة، فتأكد من فهمك للتأثير المحتمل لأي أمر.
راجع اصطلاحات تلميحات Cisco التقنية للحصول على مزيد من المعلومات حول اصطلاحات المستندات.
هناك نوعان من الصور التي يتم إستخدامها على هاتف Cisco IP 7960 و 7940: الصور الموقعة وغير الموقعة. يتم إجراء مصادقة الصورة من خلال الملفات الثنائية الموقعة. تحتوي الصور الموقعة على امتداد .sbn، بينما تحتوي الصور غير الموقعة على امتداد .bin.
تقبل إصدارات الصور الأقدم من 5.x ملفات ثنائية غير موقعة. لا تقبل الإصدارات 5.x والإصدارات الأحدث إلا الملفات الثنائية الموقعة، مما يحسن الأمان على هاتف Cisco IP 7960 و 7940. ومع ذلك، فإن إستخدام الملفات الثنائية الموقعة لا يسمح لك بالرجوع إلى صورة سابقة غير موقعة من البرامج الثابتة. بمجرد تثبيت صورة الإصدار 5.0 من البرنامج الثابت، بغض النظر عن البروتوكول، لا يمكن إستبدال الصورة بأي إصدار سابق. لا يمكن إستبدال صورة البرنامج الثابت إلا بإصدار صورة موقعة آخر 5.x أو إصدار أحدث. لا يتم تحميل جميع الإصدارات الأقدم من الإصدار 5.0 لهاتف Cisco IP 7960 و 7940 على الهاتف بعد التثبيت.
في هذا القسم، تقدم لك معلومات ترقية البرامج الثابتة لهاتف Cisco IP.
يمكن تنزيل ملفات البرامج الثابتة SCCP المطلوبة من سلسلة Cisco IP Phone FW 7900 (ليست SIP) - تنزيل البرامج (للعملاء المسجلين فقط). قم بتنزيل ملف .zip المناسب لطراز هاتف Cisco IP. حسب طراز هاتف Cisco IP، يمكن أن يحتوي ملف .zip على ملف واحد أو أكثر.
يتضمن البرنامج الثابت الإصدار 7.2(3) .zip ملف لطرز هاتف بروتوكول الإنترنت من Cisco طراز 7960 و 7940، CMTERM-7940-7960-SCCP.7-2-3.zip، الملفات التالية:
P00307020300.bin
P00307020300.sbn
P00307020300.SB2
P00307020300.load
وبالمثل، فإن البرنامج الثابت .zip file لطراز هاتف بروتوكول الإنترنت Cisco IP 7905G، cmterm-7905G-SCCP.6-1-1، يتضمن هذه الملفات:
CP7905060101SCCP050429a.sbin
CP7905060101SCCP050429a.zup
لتكوين البرنامج الثابت القابل للتطبيق، أكمل الخطوات التالية:
نقل جميع ملفات البرامج الثابتة إلى ذاكرة Flash (الذاكرة المؤقتة) ل Cisco CallManager Express. للتحقق من نقل الملفات، قم بإصدار الأمر show flash:
Router_CCME#show flash -#- --length-- -----date/time------ path !--- Part of output elided. 13 128996 Nov 30 2005 07:05:36 +00:00 P00307020300.bin 14 129400 Nov 30 2005 07:06:02 +00:00 P00307020300.sbn 15 681290 Nov 30 2005 07:06:18 +00:00 P00307020300.sb2 16 461 Nov 30 2005 07:06:34 +00:00 P00307020300.loads 24612864 bytes available (103567360 bytes used)
توفير الملفات للتنزيل بواسطة هواتف Cisco IP مع هذا التكوين:
Router_CCME#configure terminal Router_CCME(config)#tftp-server flash: P00307020300.bin Router_CCME(config)#tftp-server flash: P00307020300.sbn Router_CCME(config)#tftp-server flash: P00307020300.sb2 Router_CCME(config)#tftp-server flash: P00307020300.loads
تكوين البرامج الثابتة المناسبة لهواتف بروتوكول الإنترنت (IP) من Cisco:
Router_CCME#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router_CCME(config)#telephony-service Router_CCME(config-telephony)#load 7960-7940 P00307020300 Updating CNF files CNF files updating complete
ملاحظة: في الأمر load، يجب عدم ذكر ملحق (.bin أو .sbn) ملف البرامج الثابتة.
قم بإعادة ضبط هواتف Cisco IP لجعلها تختار إصدار البرنامج الثابت الجديد. إذا كنت قد قمت بالتخطيط لوقت التوقف عن العمل، فقم بإعادة ضبط جميع الهواتف مرة واحدة. يمكنك أيضا إعادة ضبط الهواتف بشكل فردي، حيث إن المستخدمين جاهزون.
Router_CCME(config-telephony)#reset ? H.H.H mac address all reset all ethernet phones cancel cancel in progress reset sequence-all reset all ethernet phones sequentially, wait for each phone to re-register before reseting the next phone. This prevents possible conflict between phones when accessing IOS TFTP services. Router_CCME(config-telephony)#reset all Reset 1 phones: at 15 second interval - this could take several minutes p er phone Starting with 7960 phones Router_CCME(config-telephony)# Reset-All: Requesting Reset for phone SEP000A8A93E0F9 at 172.16.2.101 deviceType 7 Telecaster 7960 Idle [count=1] *Nov 30 09:21:39.803 UTC: %IPPHONE-6-UNREGISTER_NORMAL: ephone-1:SEP000A8A93E0F9 IP:172.16.2.101 Socket:1 DeviceType:Phone has unregistered normally. Reset/Restart-all looking for phones registered as type 8 Telecaster 7940 Reset/Restart-all looking for phones registered as type 6 Telecaster 7910 Reset/Restart-all looking for phones registered as type 20000 7905 *Nov 30 09:21:53.803 UTC: %IPPHONE-6-REG_ALARM: 22: Name=SEP000A8A93E0F9 Load=7. 2(3.0) Last=Reset-Reset *Nov 30 09:21:53.803 UTC: %IPPHONE-6-REGISTER: ephone-1:SEP000A8A93E0F9 IP:172.1 6.2.101 Socket:1 DeviceType:Phone has registered. Reset/Restart-all looking for phones registered as type 30008 7902 Reset/Restart-all looking for phones registered as type 30007 7912 Reset/Restart-all looking for phones registered as type 30002 7920 Reset/Restart-all looking for phones registered as type 30016 CIPC Reset/Restart-all looking for phones registered as type 30006 7970 Reset/Restart-all looking for phones registered as type 119 7971 Reset/Restart-all looking for phones registered as type 115 7941 Reset/Restart-all looking for phones registered as type 308 7961GE Reset/Restart-all looking for phones registered as type 309 7941GE Reset/Restart-all looking for phones registered as type 307 7911 Reset/Restart-all looking for phones registered as type 302 7985 Reset/Restart-all looking for phones registered as type 30018 7961 Reset/Restart-all looking for phones registered as type 30019 7936 Reset/Restart-all looking for phones registered as type 12 ATA Phone Reset/Restart-all looking for phones registered as type 30027 SCCP Gateway (AN) Reset/Restart-all looking for phones registered as type 30028 SCCP Gateway (BRI) Reset/Restart-all looking for phones registered as type 9 7935 Reset/Restart-all looking for phones registered as type 1 30SP+ Reset/Restart-all looking for phones registered as type 2 12SP+ Reset/Restart-all looking for phones registered as type 3 12SP Reset/Restart-all looking for phones registered as type 4 12 Reset/Restart-all looking for phones registered as type 5 30VIP Reset/Restart-all looking for phones registered as type 80 Unity Voice Port Reset/Restart-all looking for phones registered as type 21 Unity Voice Port Reset/Restart-all looking for phones registered as type -1 Unknown -1 Reset-All issued for 1 phones 43 seconds (wait for last phone to re-register)
Router_CCME |
---|
Router_CCME#show ephone phone-load DeviceName CurrentPhoneload PreviousPhoneload LastReset ===================================================================== SEP000A8A93E0F9 7.2(3.0) 7.2(2.0) Initialized |
استخدم هذا القسم لتأكيد عمل التكوين بشكل صحيح.
أصدرت هذا أمر أن يعكس تشكيلك:
show telephony-service all—يعرض التكوين التفصيلي لجميع هواتف Cisco IP ومنافذ الصوت ونظراء الطلب لموجه الخدمة الهاتفية Cisco IOS.
Router_CCME#show telephony-service all CONFIG [Version=3.4(0)] ======================== Version 3.4(0) Cisco CallManager Express For on-line documentation please see: www.cisco.com/univercd/cc/td/doc/product/access/ip_ph/ip_ks/index.htm ip source-address 172.16.2.211 port 2000 load 7960-7940 P00307020300 max-ephones 1 max-dn 1 max-conferences 8 gain -6 dspfarm units 0 dspfarm transcode sessions 0 hunt-group report delay 1 hours max-redirect 5 time-format 12 date-format mm-dd-yy timezone 0 Greenwich Standard Time keepalive 30 timeout interdigit 10 timeout busy 10 timeout ringing 180 caller-id name-only: enable edit DN through Web: disabled. edit TIME through web: disabled. Log (table parameters): max-size: 150 retain-timer: 15 create cnf-files version-stamp Jan 01 2002 00:00:00 transfer-system full-consult auto assign 1 to 1 local directory service: enabled. ephone-dn 1 number 7001 preference 0 secondary 9 huntstop call-waiting beep Number of Configured ephones 1 (Registered 1) ephone 1 mac-address 000A.8A93.E0F9 type 7960 button 1:1 ! voice-port 50/0/1 station-id number 7001 ! dial-peer voice 20011 pots destination-pattern 7001$ huntstop progress_ind setup enable 3 port 50/0/1 tftp-server system:/its/SEPDEFAULT.cnf tftp-server system:/its/SEPDEFAULT.cnf alias SEPDefault.cnf tftp-server system:/its/XMLDefault.cnf.xml alias XMLDefault.cnf.xml tftp-server system:/its/ATADefault.cnf.xml tftp-server system:/its/XMLDefault7960.cnf.xml alias SEP000A8A93E0F9.cnf.xml tftp-server system:/its/united_states/7960-tones.xml alias United_States/7960-to nes.xml tftp-server system:/its/united_states/7960-font.xml alias English_United_States/ 7960-font.xml tftp-server system:/its/united_states/7960-dictionary.xml alias English_United_S tates/7960-dictionary.xml tftp-server system:/its/united_states/7960-kate.xml alias English_United_States/ 7960-kate.xml tftp-server system:/its/united_states/SCCP-dictionary.xml alias English_United_S tates/SCCP-dictionary.xml
show ephone—يعرض معلومات حول هواتف بروتوكول الإنترنت (IP) المسجلة من Cisco.
Router_CCME#show ephone ephone-1 Mac:000A.8A93.E0F9 TCP socket:[1] activeLine:0 REGISTERED in SCCP ver 6 mediaActive:0 offhook:0 ringing:0 reset:0 reset_sent:0 paging 0 debug:1 IP:172.16.2.101 50230 Telecaster 7960 keepalive 5 max_line 6 button 1: dn 1 number 7001 CH1 IDLE
يوفر هذا القسم معلومات يمكنك استخدامها لاستكشاف أخطاء التكوين وإصلاحها.
تساعد أوامر تصحيح الأخطاء هذه في تحديد أي مشاكل في ترقية البرنامج الثابت:
debug tftp events
debug ephone register
يوضح هذا المثال معلومات تصحيح الأخطاء التي تم إنشاؤها عند ترقية هاتف Cisco IP 7960 بنجاح إلى الإصدار 7.2.2 من البرنامج الثابت:
*Nov 30 09:15:19.868 UTC: ephone-1[1]:UnregisterMessage after Reset/Restart sent *Nov 30 09:15:19.868 UTC: ephone-1[1]:Phone Unregistered on socket [1] SEP000A8A 93E0F9 *Nov 30 09:15:19.868 UTC: ephone-1[1]:UnregisterAck sent on socket [1] (0/0/10) *Nov 30 09:15:19.868 UTC: %IPPHONE-6-UNREGISTER_NORMAL: ephone-1:SEP000A8A93E0F9 IP:172.16.2.101 Socket:1 DeviceType:Phone has unregistered normally. *Nov 30 09:15:19.868 UTC: skinny_server_process: Socket error. errno=0 *Nov 30 09:15:19.868 UTC: ephone-1[1]:DisAssociate: Closed socket 1 for unregist ered phone *Nov 30 09:15:19.868 UTC: CLOSED Skinny socket 1 for de-registered phone *Nov 30 09:15:30.976 UTC: TFTP: Looking for CTLSEP000A8A93E0F9.tlv *Nov 30 09:15:30.984 UTC: TFTP: Looking for SEP000A8A93E0F9.cnf.xml *Nov 30 09:15:31.504 UTC: TFTP: Opened system:/its/XMLDefault7960.cnf.xml, fd 0, size 788 for process 216 *Nov 30 09:15:31.508 UTC: TFTP: Finished system:/its/XMLDefault7960.cnf.xml, tim e 00:00:00 for process 216 Reset sequence-all, Ready to reset next phone (last 15 sec) Reset/Restart-all looking for phones registered as type 8 Telecaster 7940 *Nov 30 09:15:34.384 UTC: New Skinny socket accepted [1] (0 active) *Nov 30 09:15:34.384 UTC: sin_family 2, sin_port 50230, in_addr 172.16.2.101 *Nov 30 09:15:34.384 UTC: skinny_add_socket 1 172.16.2.101 50230 *Nov 30 09:15:34.869 UTC: %IPPHONE-6-REG_ALARM: 22: Name=SEP000A8A93E0F9 Load=7. 2(3.0) Last=Reset-Reset *Nov 30 09:15:34.869 UTC: Skinny StationAlarmMessage on socket [1] 172.16.2.101 SEP000A8A93E0F9 *Nov 30 09:15:34.869 UTC: severityInformational p1=2049 [0x801] p2=1694634156 [0 x650210AC] *Nov 30 09:15:34.869 UTC: 22: Name=SEP000A8A93E0F9 Load=7.2(3.0) Last=Reset-Rese t *Nov 30 09:15:34.869 UTC: ephone-(1)[1] StationRegisterMessage (0/0/10) from 172 .16.2.101 *Nov 30 09:15:34.869 UTC: ephone-(1)[1] Register StationIdentifier DeviceName SE P000A8A93E0F9 *Nov 30 09:15:34.869 UTC: ephone-(1)[1] StationIdentifier Instance 1 deviceTy pe 7 *Nov 30 09:15:34.869 UTC: ephone-1[-1]:stationIpAddr 172.16.2.101 *Nov 3 Reset/Restart-all looking for phones registered as type 6 Telecaster 7910 0 09:1 5:34.869 UTC: ephone-1[-1]:maxStreams 0 *Nov 30 09:15:34.869 UTC: ephone-1[-1]:protocol Ver 0x84000006 *Nov 30 09:15:34.869 UTC: ephone-1[-1]:phone-size 2820 dn-size 488 *Nov 30 09:15:34.869 UTC: ephone-(1) Allow any Skinny Server IP address 172.16.2 .211 *Nov 30 09:15:34.869 UTC: ephone-1[-1]:Found entry 0 for 000A8A93E0F9 *Nov 30 09:15:34.869 UTC: ephone-1[-1]:socket change -1 to 1 *Nov 30 09:15:34.869 UTC: ephone-1[-1]:FAILED: CLOSED old socket -1 *Nov 30 09:15:34.869 UTC: ephone-1[1]:***Force device subtype to 0 *Nov 30 09:15:34.869 UTC: ephone-1[1]:phone SEP000A8A93E0F9 re-associate OK on s ocket [1] *Nov 30 09:15:34.869 UTC: %IPPHONE-6-REGISTER: ephone-1:SEP000A8A93E0F9 IP:172.1 6.2.101 Socket:1 DeviceType:Phone has registered. *Nov 30 09:15:34.869 UTC: Phone Reset/Restart-all looking for phones registered as type 20000 7905 0 socket 1 *Nov 30 09:15:34.869 UTC: Skinny Local IP address = 172.16.2.211 on port 2000 *Nov 30 09:15:34.869 UTC: Skinny Phone IP address = 172.16.2.101 50230 *Nov 30 09:15:34.869 UTC: ephone-1[1]:Signal protocol ver 5 to phone with ver 6 *Nov 30 09:15:34.869 UTC: ephone-1[1]:Date Format M/D/Y *Nov 30 09:15:34.869 UTC: ephone-1[1]:RegisterAck sent to ephone 1: keepalive pe riod 30 use sccp-version 5 *Nov 30 09:15:34.873 UTC: ephone-1[1]:CapabilitiesReq sent *Nov 30 09:15:35.125 UTC: ephone-1[1]:CapabilitiesRes received *Nov 30 09:15:35.125 UTC: ephone-1[1]:Caps list 7 WideBand_256K 120 ms G711Ulaw64k 40 ms G711Alaw64k 40 ms G729AnnexB 60 ms G729AnnexAwAnnexB 60 ms G729 60 ms G729AnnexA 60 ms *Nov 30 09:15:35.125 UTC: ephone-1[1]:ButtonTemplateReqMessage *Nov 30 09:15:35. Reset/Restart-all looking for phones registered as type 30008 7902 125 UTC: eph one-1[1]:CheckAutoReg *Nov 30 09:15:35.125 UTC: ephone-1[1]:AutoReg is disabled *Nov 30 09:15:35.125 UTC: ephone-1[1][SEP000A8A93E0F9]:Setting 6 lines 0 speed-d ials on phone (max_line 6) *Nov 30 09:15:35.125 UTC: ephone-1[1]:First Speed Dial Button location is 0 (0) *Nov 30 09:15:35.125 UTC: ephone-1[1]:Configured 0 speed dial buttons *Nov 30 09:15:35.125 UTC: ephone-1[1]:ButtonTemplate lines=6 speed=0 buttons=6 o ffset=0 *Nov 30 09:15:35.381 UTC: ephone-1[1]:StationSoftKeyTemplateReqMessage *Nov 30 09:15:35.381 UTC: ephone-1[1]:StationSoftKeyTemplateResMessage *Nov 30 09:15:35.633 UTC: ephone-1[1]:StationSoftKeySetReqMessage *Nov 30 09:15:35.633 UTC: ephone-1[1]:Removed SkPark key *Nov 30 09:15:35.633 UTC: ephone-1[1]:StationSoftKeySetResMessage *Nov 30 09:15:3 Reset/Restart-all looking for phones registered as type 30007 7912 5.885 UTC: e phone-1[1]:StationLineStatReqMessage from ephone line 6 *Nov 30 09:15:35.885 UTC: ephone-1[1][SEP000A8A93E0F9]:StationLineStatReqMessage from ephone line 6 Invalid DN 0 *Nov 30 09:15:35.885 UTC: ephone-1[1][SEP000A8A93E0F9]:StationLineStatResMessage sent to ephone (1 of 6) *Nov 30 09:15:36.137 UTC: ephone-1[1]:StationLineStatReqMessage from ephone line 5 *Nov 30 09:15:36.137 UTC: ephone-1[1][SEP000A8A93E0F9]:StationLineStatReqMessage from ephone line 5 Invalid DN 0 *Nov 30 09:15:36.137 UTC: ephone-1[1][SEP000A8A93E0F9]:StationLineStatResMessage sent to ephone (2 of 6) *Nov 30 09:15:36.389 UTC: ephone-1[1]:StationLineStatReqMessage from ephone line 4 *Nov 30 09:15:36.389 UTC: ephone-1[1][SEP000A8A93E0F9]:StationLineStatReqMessage from ephone line 4 Invalid DN 0 *Nov 30 09:15:36.38 Reset/Restart-all looking for phones registered as type 30002 7920 9 UTC: ephon e-1[1][SEP000A8A93E0F9]:StationLineStatResMessage sent to ephone (3 of 6) *Nov 30 09:15:36.641 UTC: ephone-1[1]:StationLineStatReqMessage from ephone line 3 *Nov 30 09:15:36.641 UTC: ephone-1[1][SEP000A8A93E0F9]:StationLineStatReqMessage from ephone line 3 Invalid DN 0 *Nov 30 09:15:36.641 UTC: ephone-1[1][SEP000A8A93E0F9]:StationLineStatResMessage sent to ephone (4 of 6) *Nov 30 09:15:36.893 UTC: ephone-1[1]:StationLineStatReqMessage from ephone line 2 *Nov 30 09:15:36.893 UTC: ephone-1[1][SEP000A8A93E0F9]:StationLineStatReqMessage from ephone line 2 Invalid DN 0 *Nov 30 09:15:36.893 UTC: ephone-1[1][SEP000A8A93E0F9]:StationLineStatResMessage sent to ephone (5 of 6) *Nov 30 09:15:37.145 UTC: ephone-1[1]:StationLineStatReqMessage from ephone line 1 *Nov 30 09:15:37.145 UTC: ephon Reset/Restart-all looking for phones registered as type 30016 CIPC e-1[1]:Stati onLineStatReqMessage ephone line 1 DN 1 = 7001 desc = 7001 label = *Nov 30 09:15:37.145 UTC: ephone-1[1][SEP000A8A93E0F9]:StationLineStatResMessage sent to ephone (6 of 6) *Nov 30 09:15:37.145 UTC: ephone-1[1]:SkinnyCompleteRegistration *Nov 30 09:15:37.221 UTC: TFTP: Looking for SEP000A8A93E0F9.cnf.xml *Nov 30 09:15:37.221 UTC: TFTP: Opened system:/its/XMLDefault7960.cnf.xml, fd 0, size 788 for process 216 *Nov 30 09:15:37.221 UTC: TFTP: Looking for RINGLIST.XML *Nov 30 09:15:37.241 UTC: TFTP: Finished system:/its/XMLDefault7960.cnf.xml, tim e 00:00:00 for process 216 *Nov 30 09:15:37.245 UTC: TFTP: Looking for DISTINCTIVERINGLIST.XML *Nov 30 09:15:37.409 UTC: ephone-1[1]:Skinny Available Lines 6 set for socket [1 ] *Nov 30 09:15:37.409 UTC: ephone-1[1]:Already d Reset/Restart-all looking for phones registered as type 30006 7970 one SkinnyCo mpleteRegistration Reset/Restart-all looking for phones registered as type 119 7971 Reset/Restart-all looking for phones registered as type 115 7941 Reset/Restart-all looking for phones registered as type 308 7961GE Reset/Restart-all looking for phones registered as type 309 7941GE Reset/Restart-all looking for phones registered as type 307 7911 Reset/Restart-all looking for phones registered as type 302 7985 Reset/Restart-all looking for phones registered as type 30018 7961 Reset/Restart-all looking for phones registered as type 30019 7936 Reset/Restart-all looking for phones registered as type 12 ATA Phone Reset/Restart-all looking for phones registered as type 30027 SCCP Gateway (AN) Reset/Restart-all looking for phones registered as type 30028 SCCP Gateway (BRI) Reset/Restart-all looking for phones registered as type 9 7935 Reset/Restart-all looking for phones registered as type 1 30SP+ Reset/Restart-all looking for phones registered as type 2 12SP+ Reset/Restart-all looking for phones registered as type 3 12SP Reset/Restart-all looking for phones registered as type 4 12 Reset/Restart-all looking for phones registered as type 5 30VIP Reset/Restart-all looking for phones registered as type 80 Unity Voice Port Reset/Restart-all looking for phones registered as type 21 Unity Voice Port Reset/Restart-all looking for phones registered as type -1 Unknown -1 Reset-All issued for 1 phones 45 seconds (wait for last phone to re-register)
ملاحظة: أثناء الترقية، إذا لم يتم العثور على الملف في حالة عرض شاشة LCD لهاتف Cisco IP، فقد يشير ذلك إلى محاولة تحميل صورة غير موقعة على هاتف Cisco IP يحتوي على صورة موقعة بالفعل.